DBCC CHECKIDENT
检查指定表的当前标识值,如有必要,还对标识值进行更正。

解决方案 »

  1.   

    SET IDENTITY_INSERT 表 ON--允许将显式值插入表的标识列中
    insert ...
    SET IDENTITY_INSERT 表 OFF
      

  2.   

    删除:
    ALTER TABLE <table name> ALTER COLUMN <column name> DROP IDENTITY另外一种方法就是:
    SET IDENTITY_INSERT products ON
    这样子就允许对Identity列进行添加
      

  3.   

    to  unsigned(僵哥(当程序语言成为普及的第三语言之后……))  :你有测试下你的语法吗?
      

  4.   

    IDENTITY(1,1)属性是无法用语句修改的(添加或者去除),只能删除该列重建若是复制记录,SET IDENTITY_INSERT 表 ON后就可以直接复制了(包括IDENTITY列),没必要去掉IDENTITY(1,1)属性再加上
      

  5.   

    “我现在要将表的id列的IDENTITY(1,1)的属性去掉,然后插入一批id无序甚至跳跃但不重复的记录,然后再恢复IDENTITY(1,1)属性”你不需要这么做,你可以将IDENTITY_INSERT 设为ON后就可以往这个表中插入这一批无序甚至跳跃但不重复的记录了,然后再将IDENTITY_INSERT设为OFF,表的自增列就不能插入数据,并具有原来的IDENTITY(1,1)属性.
      

  6.   

    --建立测试环境
    Create table A (ID Int Identity(1,1),Name Varchar(10))
    Create table B (ID Int ,Name Varchar(10))Insert B Values(3,'CC')
    Insert B Values(7,'DD')
    Insert B Values(9,'EE')
    GO
    --测试
    --此时不能往自增列插入数据
    Insert A Values('AA')
    Insert A Values('BB')Select * from A
    --将Identity_Insert设为ON后,自增列可以插入数据
    Set Identity_Insert A ON
    Insert A(ID,Name) Select * from BSelect * from A
    --将Identity_Insert设为OFF后,自增列又不能插入数据了
    Set Identity_Insert A OFF Insert A Values('GG')
    Insert A Values('HH')Select * from A
    GO
    --删除测试环境
    Drop table A,B
    --结果
    /*
    --开始插入数据
    ID Name
    1 AA
    2 BB--Identity_Insert设为ON后,插入数据
    ID Name
    1 AA
    2 BB
    3 CC
    7 DD
    9 EE--Identity_Insert设为OFF后,插入数据
    ID Name
    1 AA
    2 BB
    3 CC
    7 DD
    9 EE
    10 GG
    11 HH
    */
      

  7.   

    SET IDENTITY_INSERT 
    on 表示可以显示的插入值
    off 表示不允许显示的插入值
      

  8.   

    又学了一点,set identity_insert on|off