我正在尝试执行此查询
INSERT INTO dbo.tbl_A_archive
SELECT *
FROM SERVER0031.DB.dbo.tbl_A
但即使在我运行之后
set identity_insert dbo.tbl_A_archive on
我收到此错误消息
An explicit value for the identity column in table 'dbo.tbl_A_archive' can only be specified when a column list is used and IDENTITY_INSERT is ON.
tbl_A
是一个行数和宽度都很大的表格,即它有很多列。我不想手动输入所有列。我怎样才能让它发挥作用?
最佳答案
SET IDENTITY_INSERT tableA ON
您必须为 INSERT 语句创建一个列列表:
INSERT Into tableA ([id], [c2], [c3], [c4], [c5] )
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB
不像“INSERT Into tableA SELECT ........”
SET IDENTITY_INSERT tableA OFF
关于sql-server - 仅当使用列列表且 IDENTITY_INSERT 为 ON SQL Server 时,才能指定表中标识列的显式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2005437/