当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'userright' 中的标识列插入显式值 \r\n语句已终止 请教各位打侠 这问题该怎么解决 ?

解决方案 »

  1.   


    加入的时候要指定列名,例如tt的id为标识列insert into tt(id,name)
    select 1,'aa'
      

  2.   


    SET IDENTITY_INSERT dbo.userright ON
    GO
    --设置一下
      

  3.   


    --我做个试验如下
    create table tmpTable
    (
    Id int identity,
    b varchar(20)
    )insert into tmpTable b values('aaa');
    set IDENTITY_INSERT tmpTable OFF
    -- 当IDENTITY_INSERT tmpTable OFF 的时候 
    1. 可以隐式插入
    insert into tmpTable(b) values('bbb');
    -- 2. 不可以显式插入Id的 如下就会出错
    insert into tmpTable(ID,b) values(6,'bbb');
    set IDENTITY_INSERT tmpTable ON
    -- 当IDENTITY_INSERT 为ON 的时候
    --1. 可以显式插入Id的 但是Id必须是唯一的,以前没有出现过的
    insert into tmpTable(id,b) values('8','bbb');
    --2. 不可以隐式插入
    insert into tmpTable(b) values('bbb');
    select * from tmpTable;
      

  4.   


    SET IDENTITY_INSERT dbo.表 ON
      

  5.   

    set identity_insert tbname on 
    同一数据同时只能有一个表设置为on