Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 尝试向表中插入数据时出现IDENTITY\u插入错误_Sql_Sql Server - Fatal编程技术网

Sql 尝试向表中插入数据时出现IDENTITY\u插入错误

Sql 尝试向表中插入数据时出现IDENTITY\u插入错误,sql,sql-server,Sql,Sql Server,我想将数据从数据库TD_EDD中名为ActionType的表复制到另一个数据库DsVelocity中名为ActionType的表中 我编写了以下查询: INSERT INTO [DsVelocity].[dbo].[ActionType] ([ActionTypeID] ,[ActionTypeName] ,[ActiveStatus]) SELECT [ActionTypeID], [ActionType], [Active/Deactive] FRO

我想将数据从数据库TD_EDD中名为ActionType的表复制到另一个数据库DsVelocity中名为ActionType的表中

我编写了以下查询:

INSERT INTO [DsVelocity].[dbo].[ActionType]
       ([ActionTypeID]
       ,[ActionTypeName]
       ,[ActiveStatus])
SELECT [ActionTypeID], [ActionType], [Active/Deactive]
FROM [TD_EDD].[dbo].[ActionType]
GO 
每当我尝试执行此操作时,都会出现以下错误:

Msg 544, Level 16, State 1, Line 1
Cannot insert explicit value for identity column in table 'ActionType' when IDENTITY_INSERT is set to OFF.
我不明白出了什么问题,为什么会出现这个错误


请注意,我使用的是Microsoft SQL Server 2008 R2。

好吧,让我们从消息中假设ActionTypeID是一个。无法将值输入此列,因为它是自动生成的,除非您使用

允许将显式值插入到 桌子

在任何时候,会话中只有一个表可以具有标识\u INSERT 属性设置为ON。如果表已将此属性设置为“开”, 并为另一个表发出SET IDENTITY_INSERT ON语句, SQL Server返回一条错误消息,指出SET IDENTITY\u INSERT为 已启用,并报告为其设置的表

如果插入的值大于的当前标识值 在表中,SQL Server会自动使用新插入的值作为 当前标识值

SET IDENTITY_INSERT的设置在执行或运行时设置,并且 不是在解析时间

所以你必须做一些类似的事情

SET IDENTITY_INSERT [DsVelocity].[dbo].[ActionType] ON

在插入之前。

这意味着当您将数据插入目标表时,您将有冲突的ID。最可能的ActionTypeId列

要修复它,请使用

INSERT INTO [DsVelocity].[dbo].[ActionType]
       ([ActionTypeName]
       ,[ActiveStatus])
SELECT [ActionType], [Active/Deactive]
FROM [TD_EDD].[dbo].[ActionType]
GO 

然后在插入后将IDENTITY_INSERT[DsVelocity].[dbo].[ActionType]设置为OFF。是的,我对IDENTITY_INSERT查询及其基本功能一无所知。你的回答帮助我理解了这个概念。非常感谢您花时间和耐心回答我的问题。我认为这是对我的问题最简洁、最恰当的回答。谢谢