当identity\U insert设置为off时,运行生成的脚本无法为表“”中的identity列插入显式值

8ehkhllq  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(398)

我正在尝试将数据库从使用sql server 2017 express edition的服务器移动到使用sql server 2014 standard edition的另一台服务器。由于版本问题,数据库备份/还原不是一个选项,所以我必须为整个数据库生成脚本并在新服务器上运行它们。
因为我的数据库总容量约为4GB(有数据),所以我首先只创建了模式脚本,并在目标服务器上运行它们,效果非常好。然后,我创建了数据库兼容性设置为sql server 2014 express的纯数据脚本。
当我在目标系统上运行这些脚本时,会出现如下错误。
当identity\u insert设置为off时,无法为表“”中的identity列插入显式值。
我知道问题是因为对于我面临此问题的表,identity column被设置为true,然后我为identity column提供值。我想对标识列使用与旧服务器数据库中相同的值。
如何成功还原此数据库?

oipij1gg

oipij1gg1#

在插入到标识列之前,必须允许 set identity_insert <table name> on . 检查此命令。做完之后, set identity insert off .
也许有一些恢复身份的选择。在常规sql server中,恢复运行正常。

xlpyo6sf

xlpyo6sf2#

也许可以在生成脚本之前从源表中临时删除identity属性,然后再还原它。如果可能的话。

相关问题