一般情况,我们是这样把数据复制到现有表中去的
INSERT INTO new_table_name
SELECT *
FROM old_table_name
但是,当有自增长字段时,就会提示报错,
消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表’。。。。。'中的标识列指定显式值。
这个时候,我们要对语句进行小的修改:
set identity_insert new_table_name ON
INSERT INTO new_table_name(FDetailID,FID,FENTRYID,FITEMCLASSTYPE,FITEM)
SELECT *
FROM old_table_name
注1:
set identity_insert new_table_name ON
注2:new_table_name(FDetailID,FID,FENTRYID,FITEMCLASSTYPE,FITEM)
所有字段名都写上,这步很关键
想关闭的时候,执行
set identity_insert new_table_name off
本文介绍了一种在遇到自增长字段时,如何正确地将数据从一个表复制到另一个表的方法。通过设置IDENTITY_INSERT为ON,并明确指定新表的所有字段名称,可以成功避免SQL错误并完成数据迁移。
1万+

被折叠的 条评论
为什么被折叠?



