Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将自动增量设置为主键_Sql_Sql Server - Fatal编程技术网

Sql 将自动增量设置为主键

Sql 将自动增量设置为主键,sql,sql-server,Sql,Sql Server,我创建了一个表,但忘了将自动增量设置为“id”列 由于该列是“主键”,现在我无法更改该列(更改标识) 如何添加自动增量选项 我正在使用Microsoft SQL Server。首先,您需要删除“id”列 ALTER表 删除列id 然后您需要重新创建“id”列,但现在需要使用IDENTITY约束 ALTER TABLE <Your_Table> ADD id INT NOT NULL IDENTITY PRIMARY KEY ALTER表 添加id INT NOT NULL标识主键

我创建了一个表,但忘了将自动增量设置为“id”列

由于该列是“主键”,现在我无法更改该列(更改标识)

如何添加自动增量选项


我正在使用Microsoft SQL Server。

首先,您需要删除“id”列

ALTER表
删除列id
然后您需要重新创建“id”列,但现在需要使用IDENTITY约束

ALTER TABLE <Your_Table>
ADD id INT NOT NULL IDENTITY PRIMARY KEY
ALTER表
添加id INT NOT NULL标识主键

按照以下步骤操作

  • 从列中删除主键

  • 添加具有自动递增标识值的新列

  • 如果旧列被称为外键,则使用新列值更新相关表

  • 删除旧列

  • 使用删除的列名重命名新列

  • 将其设置为主键

  • 确保所有其他约束都已就位


  • 取消主键约束。将列修改为自动增量。添加主键约束back在Kamil编辑之前,您的问题说您使用的是
    Microsoft SQL
    。我假设这意味着
    SQLServer
    ,所以我添加了相关的标记。如果不是这样,请修复文本和标记。嗨,欢迎来到stackoverflow。提问前请先搜索。@Stivan:即使列不是主键,SQL Server中也无法将
    标识
    规范添加到现有列中。您必须删除该列并使用
    标识重新创建它
    
    ALTER TABLE <Your_Table>
    ADD id INT NOT NULL IDENTITY PRIMARY KEY