我想更改数据库表上的主键/索引,将索引选项ignore_dup_key
更改为“on”。
根据这个问题“Can I set ignore_dup_key on for a primary key?”我需要删除索引并创建一个新索引。
在删除索引之前,如何获取重新创建它的命令?然后我只需更改ignore_dup_key
选项。
答案 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)