带有标识列的导入和导出向导

Ela*_*hmi 62 sql-server sql-server-2008 sql-server-2008-r2

我想将数据从一个数据库移动到另一个数据库,同时将标识列值保留在旧数据库中.当我运行向导时,我收到验证错误"无法插入只读列"ChannelID".

其中ChannelID是该表上的标识列.如何覆盖身份功能以便能够导入数据?

Mic*_*use 109

您需要启用身份插入.单击"编辑映射"时会出现一个复选框.

  • 您可以选择向导中的所有列,编辑映射,并选中启用标识插入(至少在SSMS 2012中). (6认同)
  • `SET IDENTITY INSERT ON`也可以,但问题是关于使用向导. (3认同)
  • 您似乎必须为每个需要它的表执行此操作.向导工具糟透了! (3认同)

Off*_*dar 8

Byte56的答案是正确的 - 从Edit Mappings屏幕中选中"Enable identity insert".我只是想指出"选择源表和视图"列表支持多选,因此您可以按住Shift或Ctrl来选择列表中的多个表.


hub*_*t17 7

EDIT COLUMN MAPPINGS中,勾选ENABLE IDENTITY INSERT. 然后单击" 编辑SQL"按钮.

更改

[MyID] int NOT NULL,
Run Code Online (Sandbox Code Playgroud)

[MyID] int IDENTITY(1,1),
Run Code Online (Sandbox Code Playgroud)

适用于导入MS Access数据库.这将保留自动编号字段中的数据转换为标识列.


il_*_*uru 5

您应该使用SET IDENTITY INSERT ON允许在IDENTITY列中插入值

这是MSDN 的链接