更新并插入批量移动(SQL Server)

时间:2011-10-31 19:49:02

标签: sql sql-server-2008-r2

我有一对数据库,一个是实时数据库,另一个是测试该实时数据库的配置。两者都驻留在同一台服务器上。

我有三个表,用户(PK UserId,FK MainGroupId)和Groups(PK GroupId)和GroupMembers(PK GroupMemberId,FK GroupId和UserId)。

两个数据库上的表都是相同的模式,但测试数据库有一组特殊的测试用户。组大多数是稳定的,但有时我们会添加组,有时我们会更改组中的列数据。 GroupMembers是相同的,但在测试数据库中是指测试用户。

我需要能够以编程方式从实时更新Groups表到测试用户。我想使用批量复制操作,但为此我必须先删除Groups表,这将导致约束违规。

我可以将表批量复制到虚拟表,然后通过插入新行来发布进程,并更新现有行。但是,我的问题是有大约30个表,如组,我不想在UPDATE SET方法中将所有列名编码到存储过程中。我也希望能够批量购买。

DBA对授予临时删除约束的ALTER TABLE权限持怀疑态度。

还有其他建议吗?

2 个答案:

答案 0 :(得分:2)

两个数据库都在同一台服务器上,为什么不使用MERGE语句?

答案 1 :(得分:0)

选择导出和导入。如果按正确的顺序执行,它应该可以正常工作。