我有两个数据库A,B在sql server中具有相同数量的表和模式。所有表都包含自动生成的PK,两个数据库都包含自己的数据。
现在我必须将A的所有数据移到B.因为我希望将来只使用一个数据库
我试图用SSIS包移动它们,但它用新PK复制数据。因此,当这些密钥用作FK丢失时,参考和数据将会损坏。
请帮助我,我如何使用所有约束和PK,FK一致性来移动数据。
答案 0 :(得分:1)
在没有SSIS的情况下,一种简单的方法是将SSMS(SQL Server Management Studio)脚本输出整个数据库,包括模式和数据,然后针对目标数据库运行脚本。我已经多次这样做了,而且效果很好。
答案 1 :(得分:1)
您可能希望稍微了解一下这个工具(或者至少是它的试用版)。我的经历非常好:
http://www.red-gate.com/products/sql-development/sql-data-compare/
答案 2 :(得分:1)
如果您有一个标识列,并且希望在将它们从旧表移动到新表时保留这些值,请在数据流目标中选中“保留标识”。如果要在不同服务器上的数据库之间移动数据,那么SSIS就是一个非常适合此目的的工具。如果要在同一服务器上的数据库之间移动数据,则可以为当前会话启用标识插入,在新表中插入记录,然后关闭标识插入。没有理由你不得不丢失当前的键值。