从一个数据库更新到另一个SQL Server 2012

时间:2014-07-22 04:41:59

标签: sql sql-server sql-server-2012

我想弄清楚如何更新表格。在那一刻我将它截断表格,然后将所有记录插回其中(如下所示)。

我想要实现的是它只更新新记录,所以如果从DATABASE2中删除记录,它仍然保存在DATABASE1中。

TRUNCATE TABLE [DATABASE1].dbo.[TABLE1];

INSERT INTO [DATABASE].dbo.[DB1]
   SELECT * 
   FROM [SERVER2].[DATABASE2].dbo.[TABLE1];

非常感谢任何帮助

由于

1 个答案:

答案 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中丢失的记录不会被触及,无论有什么。 剩下的数据正在刷新。