SQL 插入值 时不让插入要用set IDENTITY_INSERT STAFF_LOGIN ON 
set IDENTITY_INSERT STAFF_LOGIN OFF
才行,我想知道,这表改什么了,怎么改回来,
不用上面的语句也能插入值 ,有人知吗

解决方案 »

  1.   

    IDENTITY_INSERT 选项表示你要给自增列强行加入你定义的值
    如果你的表中没有自增列,
    或者你只需要自增列自己自增长,不需要自己定义值
    这两种情况都不需要设置这个选项
      

  2.   

    因为表中含有自增列(identity column),无法直接给自增列插入值,需先启用identity_insert选项.
    参考 http://technet.microsoft.com/zh-cn/library/ms188059(v=sql.105).aspx
      

  3.   


    这个表没有修改什么,这个只是一个会话测试,当你运行完代码后,和原来都一样,没什么区别:
    --如果一个表有identity属性列,那么要插入identity属性列,
    --必须要打开设置: set IDENTITY_INSERT 表 on 
    set IDENTITY_INSERT STAFF_LOGIN ON --必须要有col1,col2,col3... 否则会报错
    insert into STAFF_LOGIN(col1,col2,col3...)
    values(要插入的列1,要插入的列2...)--插入操作作完成会,恢复设置为off,也就是关闭设置
    set IDENTITY_INSERT STAFF_LOGIN OFF
      

  4.   


    这个表没有修改什么,这个只是一个会话测试,当你运行完代码后,和原来都一样,没什么区别:
    --如果一个表有identity属性列,那么要插入identity属性列,
    --必须要打开设置: set IDENTITY_INSERT 表 on 
    set IDENTITY_INSERT STAFF_LOGIN ON --必须要有col1,col2,col3... 否则会报错
    insert into STAFF_LOGIN(col1,col2,col3...)
    values(要插入的列1,要插入的列2...)--插入操作作完成会,恢复设置为off,也就是关闭设置
    set IDENTITY_INSERT STAFF_LOGIN OFF
    up!