删除并重新创建主键

时间:2012-05-15 11:14:35

标签: sql sql-server tsql ssms

我想更改数据库表上的主键/索引,将索引选项ignore_dup_key更改为“on”。

根据这个问题“Can I set ignore_dup_key on for a primary key?”我需要删除索引并创建一个新索引。

在删除索引之前,如何获取重新创建它的命令?然后我只需更改ignore_dup_key选项。

4 个答案:

答案 0 :(得分:2)

右键单击SSMS中的主键,然后选择Script - >作为创建 - >到新窗口

答案 1 :(得分:1)

作为indicated by a commenter on another related question,您可以为表启用IGNORE_DUP_KEY:

ALTER TABLE [TableName] REBUILD WITH (IGNORE_DUP_KEY = ON);

并恢复:

ALTER TABLE [TableName] REBUILD WITH (IGNORE_DUP_KEY = OFF);

答案 2 :(得分:0)

我认为SQL不允许使用带有IGNORE_DUP_KEY =的PK,因此我在SQL 2008 R2上进行了测试。
通过脚本可以创建一个PK IGNORE_DUP_KEY = on的表。但即使有掉落和创造也无法将PK从关闭改为开启。有趣的是脚本运行没有错误,但它没有将PK从关闭更改为开启。您可能会在您的环境中找到不同的结果。

答案 3 :(得分:0)

删除索引 你可以运行

DROP INDEX [IndexName] ON [TableName]

使用Ignore_Dup_Key选项创建索引

CREATE UNIQUE INDEX [IndexName] ON [TableName]([ColumnNam])
WITH (IGNORE_DUP_KEY = ON)