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 - SUM 的 MAX 和 TOP 在 View 中的使用

sql-server - 如何针对 localdb 使用 sql server 企业功能对 SSDT 项目进行单元测试?

sql-server - Excel 2010 与 Excel 2013 VBA 存储过程

sql-server - MS-SQL varchar(max) 数据类型的 CFQueryParam/cfsqltype

sql-server-2008 - SQL Server 2008 计划定时作业运行

sql-server - 在T-SQL中获取包含某个内部节点的所有XML节点

sql-server-2008 - SQL 2008表的Select语句

sql-server-2008 - 选择值大于 0 的列

sql - 透视重复的列名称并获取列的所有值

sql-server - 使用UPDLOCK和READPAST选择top 1对整个表设置排他锁