我想弄清楚如何更新表格。在那一刻我将它截断表格,然后将所有记录插回其中(如下所示)。
我想要实现的是它只更新新记录,所以如果从DATABASE2中删除记录,它仍然保存在DATABASE1中。
TRUNCATE TABLE [DATABASE1].dbo.[TABLE1];
INSERT INTO [DATABASE].dbo.[DB1]
SELECT *
FROM [SERVER2].[DATABASE2].dbo.[TABLE1];
非常感谢任何帮助
由于
答案 0 :(得分:0)
让我重新澄清你要归档的内容,基本上你想刷新server2中的数据,如果它有新的值。
如果是,则不要直接删除table1中的所有内容
TRUNCATE TABLE [DATABASE1].dbo.[TABLE1];
而是切换到
DELETE FROM [DATABASE1].dbo.[TABLE1]
INNER JOIN [SERVER2].[DATABASE2].dbo.[TABLE1] ON /* primary mapping here*/
这样你只会删除server2中存在的所有记录。
然后,为您的插入语句
INSERT INTO [DATABASE].dbo.[DB1]
SELECT X.*
FROM [SERVER2].[DATABASE2].dbo.[TABLE1] X
LEFT JOIN [DATABASE].dbo.[DB1] Y ON /* primary mapping here*/
WHERE Y.{primary key} IS NULL
所以那些在server1中丢失的记录不会被触及,无论有什么。 剩下的数据正在刷新。