我有一个包含 5 个不同数据库的 SQL Server 实例。出于某些原因,我们希望将它们合并到 1 个数据库中,将每个数据库分离到它自己的模式中。我已经将架构/表构建到“主”数据库中,但是我无法构建一种将数据从旧数据库导入新主数据库的好方法。就像是:
insert into [masterDB].[oldDBSchema].[tableName]
select * from [oldDB].dbo.[tableName]
不起作用,因为这个错误:
仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“cobraclientdata.cconfigd.adjudicationbutton”中标识列的显式值。
现在我可以很容易地将 IDENTITY_INSERT 设置为 ON,但如果不需要,我宁愿不指定列,因为对每个表都这样做是一个 PITA。这些表具有完全相同的结构,有没有一种快速的方法可以做到这一点(我正在尝试构建一个脚本,我可以在多个服务器上运行这个“更新”),或者我是否坚持为每个表写出列,或明确地进行导入/导出数据?
您可以使用动态 SQL 生成 T-SQL 语句列表,如下所示:
在SQL Server Import and Export Wizard中,选中页面上Source旁边的复选框
Select Source Tables and Views
。选择后,单击Edit Mappings
。这将带您进入一个Transfer Settings
对话框,您可以使用它Enable identity insert
。