当 IDENTITY_INSERT
设置为OFF时,为什么我在插入时出错?
如何在SQL Server 2008中正确启用它?是使用SQL Server Management Studio吗?
我运行了这个查询:
SET IDENTITY_INSERT Database. dbo. Baskets ON
然后我在控制台中收到消息,命令已成功完成 . 但是当我运行应用程序时,它仍然给出了如下所示的错误:
Cannot insert explicit value for identity column in table 'Baskets' when
IDENTITY_INSERT is set to OFF.
7 回答
通过SQL按照MSDN
完整的错误消息告诉您到底出了什么问题......
我有一个问题,即使在设置IDENTITY_INSERT后,它也不允许我插入它 .
问题是我没有指定列名称,并且由于某种原因它不喜欢它 .
So basically do the full INSERT INTO tbl(cols) Values(vals)
Import: 您必须在
INSERT
语句中写入列是不正确的 .
是正确的
我知道这是一个较旧的线程,但我只是碰到了这个 . 如果用户尝试在其他会话设置IDENTITY_INSERT ON之后在Identity列上运行插入,则他必然会得到上述错误 .
设置Identity Insert值和后续的Insert DML命令将由同一会话运行 .
这里@Beginner分别设置Identity Insert ON,然后从他的应用程序运行插入 . 这就是他得到以下错误的原因:
当您有一个PRIMARY KEY字段并且您正在插入一个重复的值或者您将INSERT_IDENTITY标志设置为on时,这很可能
放置SET IDENTITY_INSERT数据库看起来很有必要 . DBO . 篮子ON;在每个SQL INSERT发送批处理之前 . /你可以发送几个INSERT ... VALUES ..命令以一个SET IDENTITY_INSERT ... ON开始;一开始的字符串 . 只是不要把任何批处理分隔符放在/我不知道为什么SET IDENTITY_INSERT ... ON停止工作,发送块之后(例如:c#中的.ExecuteNonQuery())...我不得不把SET IDENTITY_INSERT ...... ON;再次在下一个SQL命令字符串的开头 .
设置标识插入后,需要添加命令“go” . 例: