2

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

根据这个问题“我可以为主键设置ignore_dup_key吗? ”我需要删除索引并创建一个新索引。

在删除索引之前,如何获取重新创建它的命令?那我就换个ignore_dup_key选项。

4

4 回答 4

2

右键单击 SSMS 中的主键,然后选择 Script -> As Create -> To New Window

于 2012-05-15T17:05:57.093 回答
1

正如另一个相关问题的评论者所指出的,您可以为表启用 IGNORE_DUP_KEY :

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

并恢复:

ALTER TABLE [TableName] REBUILD WITH (IGNORE_DUP_KEY = OFF);
于 2012-12-10T14:28:19.407 回答
0

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

于 2012-05-15T14:37:00.830 回答
0

要删除索引,您可以运行

DROP INDEX [IndexName] ON [TableName]

使用 Ignore_Dup_Key 选项创建索引

CREATE UNIQUE INDEX [IndexName] ON [TableName]([ColumnNam])
WITH (IGNORE_DUP_KEY = ON)
于 2012-05-15T14:54:20.007 回答