【发布时间】:2011-03-02 01:13:02
【问题描述】:
我有table a 和table b。 (SQL Server 2008)
两个表的架构完全相同。
就这个问题而言,考虑table a = 我的本地开发表,table b = 实时表。
我需要创建一个 SQL 脚本(包含UPDATE/DELETE/INSERT 语句),它将表 b 更新为与表 a 相同。然后,此脚本将部署到实时数据库。
是否有任何免费工具可以做到这一点,或者更好的方法是我自己可以做到这一点?
我想我可能需要对表中的所有字段进行某种类型的连接,然后基于此生成动态 SQL。
有人有什么想法吗?
编辑
好的,我想我会澄清一下这个问题。
我需要同步的表是一个简单的查找表。数据非常简单明了。
下面是TABLE A 可能的样子:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
下面是TABLE B 可能的样子:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
基本上,我要做的就是更新 TABLE B 中的 BIT 列 (IsFoo) 以匹配同一 IdFoo 的 TABLE A 中的相应值。
记住:
-
TABLE A在我的本地机器上 -
TABLE B在直播服务器上
显然,我在本地机器上有一个(可靠的)TABLE B 备份,我需要针对它编写脚本,然后在实时服务器上运行脚本。
该表还具有引用完整性(其他列我没有显示)。这意味着我不能只删除 TABLE B 中的所有内容并从 TABLE A 插入。
这个脚本将是一次性的。因此,无需执行链接服务器、复制等操作。感谢各位的回答。 =)
编辑:
好的 - 所以我接受了 Oleg 的回答(VS2010 数据比较)。快速、简单,而且很有魅力。
并不是说其他答案不正确。我感谢所有的答案!
【问题讨论】:
-
任何答案在很大程度上取决于您是否有一个可以可靠地用于匹配两行的字段。
-
答案还取决于您需要执行此操作的频率以及数据量有多大?如果是一次性的,您可以使用导入/导出向导将
table b传输到table a。如果您希望立即和持续地反映更改,您可以实施复制。
标签: sql-server tsql sql-server-2008 sqlcompare