【发布时间】:2013-07-02 12:34:30
【问题描述】:
我正在对开发数据库进行一些数据更改,并希望在完成后将更改复制到实时数据库。可能会有一些新的行,尽管大部分都会有更新的行。 IE。已存在于实时数据库中的行。
数据库中有几个表,我只想从其中的几个表中复制数据。
如果可能的话,我希望无需编写任何脚本并使用Management Studio 附带的工具之一就可以做到这一点。
我尝试在Management Studio 中使用Generate and Publish Scripts 向导,并创建了一个脚本来复制我希望复制的表中的所有数据。这里的问题是,脚本尝试在更新行的情况下插入具有已经存在的 Id 的行。所以只插入新行。
我希望能够自动生成一个脚本,如果该行已经存在则更新该行,如果不存在则插入一个新行。
是否有其他工具或使用Generate and Publish Scripts 向导的选项可以让我执行此操作?
【问题讨论】:
-
不认为有一个工具可以做到这一点,但你想要做的被称为 UPSERT 或 MERGE 取决于 sql 版本en.wikipedia.org/wiki/Merge_(SQL) 这可能是 MSSQL,upsert 在 MSSQL 上是“自定义”的,请参阅: stackoverflow.com/questions/11010511/…
标签: sql sql-server merge copy