我正在尝试将数据库从使用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提供值。我想对标识列使用与旧服务器数据库中相同的值。
如何成功还原此数据库?
2条答案
按热度按时间oipij1gg1#
在插入到标识列之前,必须允许
set identity_insert <table name> on
. 检查此命令。做完之后,set identity insert off
.也许有一些恢复身份的选择。在常规sql server中,恢复运行正常。
xlpyo6sf2#
也许可以在生成脚本之前从源表中临时删除identity属性,然后再还原它。如果可能的话。