MSSQL 导入/导出/复制 IDENTITY_INSERT 问题

Cra*_*aub 4 sql sql-server

使用 MS SQL Server Management Studio 2008。
我有一个 db(比如 ip 10.16.17.10 并称为db1)和第二个(比如 ip 10.16.17.25 称为db2)。

我试图将一张(及其内容)从db1复制到db2
我在两者上都有数据库(但在 db2 中为空)。

问题是无论我如何复制/导出/导入,无论我在MS SQL Server Management Studio 2008 中设置什么选项,当我单击“表”->“设计”(在db2 上)时,它总是说“身份规范:否”即使 db1 表有它。

db1我转到“任务”->“导出”->“源/db”和“目标/db”->“编辑映射”->“启用身份插入”并单击它。

但是没有快乐。总是在没有它的情况下出口。
我在db2上尝试了来自 IMPORT 的类似操作。如果我使用 COPY,类似的事情。

我已经阅读了许多关于此的 STACKOVERFLOW 文章,他们都建议将 IDENTITY_INSERT 设置设置为 ON 但当我在下面运行时:

SET IDENTITY_INSERT [dbo].[mytable] ON
Run Code Online (Sandbox Code Playgroud)

该表要么不存在,要么已经在没有标识设置的情况下进行复制,因此请查看错误:

does not have the identity property. Cannot perform SET operation.
Run Code Online (Sandbox Code Playgroud)

我曾尝试将其设置为db2的属性(在数据库属性下),但是当我复制/导入/导出时从未奏效。

非常感谢这里的任何帮助,因为到目前为止,许多 StackOverflow 文章似乎都比我更轻松。

我计划为这个数据库中的另外 50 个左右的表执行此操作,因此我希望找到一种不涉及为每个表运行脚本的方法。

谢谢

Kev*_*ahl 5

使用导出数据向导将数据从一个表复制到另一个表的过程不会复制架构的所有方面(如标识和自动增量)。如果您想复制模式,请将您的表编写成一个 create 语句,将名称更改为 db2,然后创建它。然后,您应该能够在打开身份插入选项的情况下运行导出/导入向导,并将其插入到复制旧表架构的新表中。