如何使用SQL语法更改主键约束?

Jas*_*son 93 sql-server

我有一个表在主键约束中缺少一列.我不想通过SQL Server进行编辑,而是将其放在一个脚本中,以将其添加为更新脚本的一部分.

我可以使用什么语法来执行此操作?我必须放弃并重新创建关键约束吗?

dar*_*nir 132

是.唯一的方法是使用Alter表删除约束,然后重新创建它.

ALTER TABLE <Table_Name>
DROP CONSTRAINT <constraint_name>

ALTER TABLE <Table_Name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY (<Column1>,<Column2>)
Run Code Online (Sandbox Code Playgroud)

  • 如果您不知道主键约束名称,请使用此处的查询进行查找(或一次查找和删除).[http://stackoverflow.com/a/13948609/945875](http://stackoverflow.com/a/13948609/945875) (9认同)
  • ALTER TABLE db.table DROP PRIMARY KEY 适用于 MySQL。(不是 MSSQL。) (3认同)
  • 对于那些不知道约束名称的人:ALTER TABLE `db`.`table` DROP PRIMARY KEY, ADD PRIMARY KEY (`id1`, `id2`); (2认同)

Ole*_*Dok 20

PRIMARY KEY CONSTRAINT无法更改,您可能只会删除它并再次创建.对于大型数据集,它可能会导致运行时间过长,从而导致表不可用.