更改标识的增量值-SQL Server 2005

更改标识的增量值-SQL Server 2005,sql,sql-server,Sql,Sql Server,我想更改数据库中标识列的增量值,我有以下限制: 无法删除该列 大约有2万行 解决方案是删除表并用更改的增量值重新创建表。我不知道语法 您能建议一下语法或其他最好的解决方案吗 提前谢谢 无法在创建表后更改标识列 相反,请使用以下命令重置种子值 DBCC CHECKIDENT('tablename', RESEED, 15) 如果您可以接受重新创建表,那么重新创建表语法就没有什么神奇之处 CREATE TABLE temp_Table ( -- Identity column wi

我想更改数据库中标识列的增量值,我有以下限制:

  • 无法删除该列
  • 大约有2万行
  • 解决方案是删除表并用更改的增量值重新创建表。我不知道语法

    您能建议一下语法或其他最好的解决方案吗


    提前谢谢

    无法在创建表后更改标识列

    相反,请使用以下命令重置种子值

    DBCC CHECKIDENT('tablename', RESEED, 15)
    

    如果您可以接受重新创建表,那么重新创建表语法就没有什么神奇之处

     CREATE TABLE temp_Table
     (
          -- Identity column with new settings
          -- other columns
     );
    
     INSERT INTO temp_Table
     SELECT -- Columns except identity column
     FROM old_table;
    
     DROP TABLE old_Table;
    
     EXEC sp_rename 'temp_Table', 'old_Table';
    

    但是,您必须自己处理外键。

    如果我根据您对我的评论的回复正确理解您,您将源表的数据备份到临时表中,然后删除了源表,并希望重新创建一个源表

    如果是这种情况,则需要插入
    标识
    来设置
    打开
    关闭
    ,因为表的标识是唯一的

    语法是:

    SET IDENTITY_INSERT [TableName] ON -- set to on
    -- Put your insert statement here
    -- insert the data from backed up temp table to your new table
    SET IDENTITY_INSERT [TableName] OFF -- set to off
    

    你能出示你的密码吗,我们可以纠正它。@JapzDivino:事实上,我试图将数据复制到临时表,并删除原始表。再次创建了原始表,但仍停留在如何使用我在临时表中备份的标识列的原始值再次复制数据。查找
    SET identity\u INSERT
    Q:您是否尝试过在Sql Mgr GUI中简单地更改标识列的“增量”:?@PrakashBhagat,我明白了。。我认为您需要的是打开和关闭
    IDENTITY\u INSERT
    ,在插入之前,您必须打开INSERT\u IDENTITY,语法是
    set IDENTITY\u INSERT[TableName]ON
    ,然后在INSERT语句之后,您必须将INSERT\u IDENTITY设置为OFF,语法是
    set IDENTITY\u INSERT[TableName]关闭
    谢谢您的回复。是的,在mssql服务器中不可能进行更改。所以我想知道另一种选择。正确。非常感谢:)