首页 文章

如何使用SQL Server 2008打开和关闭IDENTITY_INSERT?

提问于
浏览
372

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 回答

  • 0

    通过SQL按照MSDN

    SET IDENTITY_INSERT sometableWithIdentity ON
    
    INSERT sometableWithIdentity (IdentityColumn, col2, col3, ...)
    VALUES (AnIdentityValue, col2value, col3value, ...)
    
    SET IDENTITY_INSERT sometableWithIdentity OFF
    

    完整的错误消息告诉您到底出了什么问题......

    当IDENTITY_INSERT设置为OFF时,无法在表'sometableWithIdentity'中为identity列插入显式值 .

  • -2

    我有一个问题,即使在设置IDENTITY_INSERT后,它也不允许我插入它 .

    问题是我没有指定列名称,并且由于某种原因它不喜欢它 .

    INSERT INTO tbl Values(vals)
    

    So basically do the full INSERT INTO tbl(cols) Values(vals)

  • 0

    Import: 您必须在 INSERT 语句中写入列

    INSERT INTO TABLE
    SELECT * FROM
    

    是不正确的 .

    Insert into Table(Field1,...)
    Select (Field1,...) from TABLE
    

    是正确的

  • 3

    我知道这是一个较旧的线程,但我只是碰到了这个 . 如果用户尝试在其他会话设置IDENTITY_INSERT ON之后在Identity列上运行插入,则他必然会得到上述错误 .

    设置Identity Insert值和后续的Insert DML命令将由同一会话运行 .

    这里@Beginner分别设置Identity Insert ON,然后从他的应用程序运行插入 . 这就是他得到以下错误的原因:

    Cannot insert explicit value for identity column in table 'Baskets' when 
    IDENTITY_INSERT is set to OFF.
    
  • 30

    当您有一个PRIMARY KEY字段并且您正在插入一个重复的值或者您将INSERT_IDENTITY标志设置为on时,这很可能

  • 642

    放置SET IDENTITY_INSERT数据库看起来很有必要 . DBO . 篮子ON;在每个SQL INSERT发送批处理之前 . /你可以发送几个INSERT ... VALUES ..命令以一个SET IDENTITY_INSERT ... ON开始;一开始的字符串 . 只是不要把任何批处理分隔符放在/我不知道为什么SET IDENTITY_INSERT ... ON停止工作,发送块之后(例如:c#中的.ExecuteNonQuery())...我不得不把SET IDENTITY_INSERT ...... ON;再次在下一个SQL命令字符串的开头 .

  • 51

    设置标识插入后,需要添加命令“go” . 例:

    SET IDENTITY_INSERT sometableWithIdentity ON
    go
    
    INSERT sometableWithIdentity (IdentityColumn, col2, col3, ...)
    VALUES (AnIdentityValue, col2value, col3value, ...)
    
    SET IDENTITY_INSERT sometableWithIdentity OFF
    go
    

相关问题