Sql Server将数据从一个数据库表复制到另一个数据库表

时间:2013-07-02 12:34:30

标签: sql sql-server merge copy

我正在对dev数据库进行一些数据更改,并希望在完成后将更改复制到实时数据库。可能会有一些新行,但大多数会有更新的行。即已存在于实时数据库中的行。

数据库中有几个表,我只想复制其中几个表。

如果可能的话,我希望无需编写任何脚本,并使用Management Studio附带的工具之一就可以实现这一目标。

我尝试使用Generate and Publish Scripts中的Management Studio向导,并创建了一个脚本,该脚本复制了我要复制的表中的所有数据。这里的问题是,脚本尝试插入具有在更新行的情况下已经存在的ID的行。所以只插入新行。

我希望能够自动生成一个脚本,如果它已经存在,将更新该行,或者只是插入一个新行。

是否有其他工具或使用Generate and Publish Scripts向导的选项可以让我这样做?

2 个答案:

答案 0 :(得分:1)

我知道现在很晚才回答,但分享给那些仍然面临同样问题的人。

我最近在我的一个项目中也有同样的情况,我通过编写一个存储过程(参考:Copy changed data in table from source to destination in SQL)来完成它,这将为每个创建“MERGE”语句表,用于将源数据库的差异复制到特定表的目标数据库。

要了解有关MERGE声明的更多信息,您可以访问此MSDN link

答案 1 :(得分:0)

有一个名为SQL Compare的程序可以帮助我实现我想要做的事情,而不必自己编写任何脚本。相当昂贵,但试用版可用。