sql-server - 设置 IDENTITY_INSERT ON 不起作用

标签 sql-server sql-server-2008 tsql

我想将表 Equipment 从一个数据库 MyDBQA 复制到我们的测试数据库 MyDB。表中有一个标识列,它是主键(int,不为空)。

但是我得到了一个错误:

Msg 8101, Level 16, State 1, Line 2
An explicit value for the identity column in table 'MyDB.dbo.Equipment' can only be specified when a column list is used and IDENTITY_INSERT is ON.

我的脚本:

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] ON
INSERT INTO [MyDB].[dbo].[Equipment]  SELECT * FROM [MyDBQA].[dbo].[Equipment]
SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] OFF

最佳答案

正如消息所述,您可能只是缺少列列表

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] ON

INSERT INTO [MyDB].[dbo].[Equipment]
            (COL1,
             COL2)
SELECT COL1,
       COL2
FROM   [MyDBQA].[dbo].[Equipment]

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] OFF 

关于sql-server - 设置 IDENTITY_INSERT ON 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006273/

相关文章:

sql - 如何保证统计表的连续性?

sql - 计算上一季度的最后一天

sql-server - 对过去 8 周的活跃用户总数进行分组

sql - 如何创建多语句表值函数

sql-server - 具有区分大小写列的 T-SQL 表变量 - 整理 SQL_Latin1_General_CP1_CS_AS

sql - 如何编写可以返回0行作为case语句一部分的T-SQL查询

sql-server-2008 - 无法将值 NULL 插入到列 '' 中,表列不允许空值。 INSERT 失败。无法执行以下 SQL block

sql - 创建一个为连接 session 的长度声明的变量?

sql-server - 如何对使用 OUTPUT 子句的 UPDATE 语句的结果集进行排序?

sql-server - 我可以在安装 2005 SQLExpress 的同时安装 2008 SQLExpress 吗?