Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将数据从生产数据库中的表归档到辅助归档数据库中的同一表_Sql - Fatal编程技术网

Sql 将数据从生产数据库中的表归档到辅助归档数据库中的同一表

Sql 将数据从生产数据库中的表归档到辅助归档数据库中的同一表,sql,Sql,您好,上周我被要求在sql数据库中归档一些表,我是sql新手,我在其他问题中看到了一些代码。谁能解释一下declare@nextid表和UniqueID是什么?下面的代码,代码不是我的,而是所有者的功劳 在我的例子中,我有一个主键调用attachmentID,在db call prod中名为attachments的表中,日期列是attachmentdate。我不能确定我是要替换UniqueID还是什么?如果可以的话,请帮忙 DECLARE @NextIDs TABLE(UniqueID int

您好,上周我被要求在sql数据库中归档一些表,我是sql新手,我在其他问题中看到了一些代码。谁能解释一下declare@nextid表和UniqueID是什么?下面的代码,代码不是我的,而是所有者的功劳

在我的例子中,我有一个主键调用attachmentID,在db call prod中名为attachments的表中,日期列是attachmentdate。我不能确定我是要替换UniqueID还是什么?如果可以的话,请帮忙

DECLARE @NextIDs TABLE(UniqueID int primary key)
DECLARE @ThreeYearsAgo datetime
SELECT @ThreeYearsAgo = DATEADD(d, -(3 * 365), GetDate())

WHILE EXISTS(SELECT 1 
             FROM [ISAdminDB].[dbo].[MyTable] 
             WHERE [MyTable].[DateTime] < @ThreeYearsAgo)
BEGIN 
    BEGIN TRAN 
       INSERT INTO @NextIDs(UniqueID)
        SELECT TOP 1000 UniqueID 
          FROM [ISAdminDB].[dbo].[MyTable] 
          WHERE [MyTable].[DateTime] < @ThreeYearsAgo

       INSERT INTO [ISArchive].[dbo].[MyTable] (<Fields>) 
        SELECT (<Fields>) 
        FROM  [ISAdminDB].[dbo].[MyTable] AS a
        INNER JOIN @NextIDs AS b ON a.UniqueID = b.UniqueID

       DELETE [ISAdminDB].[dbo].[MyTable]
       FROM  [ISAdminDB].[dbo].[MyTable] 
       INNER JOIN @NextIDs AS b ON a.UniqueID = b.UniqueID 

       DELETE FROM @NextIDs

       COMMIT TRAN
END

@NextIDs是一个表变量。 这里,数据从isadmin mytable移动到表变量@NextIDs 然后从@NextIDs到isarchive mytable
在isadmin mytable数据被删除之后

这是您的问题的答案吗?因此在这个代码示例中,我不会更改任何代码(包括连接)中显示UniqueID的位置?对不起,我还不明白。感谢澄清,我用attachmentid替换了uniqueID,attachmentid是数据库附件表中名为production的列。所以无论我在哪里看到uniqueID我都把它换了