在SQL数据库之间移动数据子集

时间:2015-01-06 18:31:12

标签: sql-server sql-server-2012

我有两个客户数据库,两者都具有相同的结构。我需要将一些客户(customerID)及其相关信息从一个数据库移动到我们的测试数据库,因为涉及多个表(有约束),我应该如何完成它?我是否需要首先删除目标数据库中表中的所有约束?这份工作是否有指南或一些示例脚本?

1 个答案:

答案 0 :(得分:1)

如果按正确的顺序执行此操作,则无需删除约束。做" leaf"表格首先是没有依赖关系的表格,并且在这个问题上完成所有表格。

您可以执行以下操作:

INSERT INTO Destinationdb.owner.table
Select * From SourceDB.owner.table

如果在任何表中都有标识字段,则在插入运行之前

SET IDENTITY_INSERT TABLE ON

并在INSERT运行之后

SET IDENTITY_INSERT TABLE OFF

编辑: 有一件事我忘了。如果你有约束,那么你就不能对一个表进行TRUNCATE,所以如果你保留约束,那么你必须先运行DELETE语句来清除目标表。如果您有大量数据,这可能会变得不切实际,在这种情况下,您需要编写约束,删除它们,截断数据(而不是删除,因为它节省了事务),复制数据,然后运行脚本重新启用所有约束。

HTH