2012-05-15 6 views
2

Я хочу изменить первичный ключ/индекс в таблице базы данных, чтобы изменить параметр индекса ignore_dup_key на 'on'.Удалить и восстановить первичный ключ

В соответствии с этим вопросом «Can I set ignore_dup_key on for a primary key?« Мне нужно отбросить индекс и создать новый.

Прежде чем опустить индекс, как я могу получить команду для его воссоздания? Тогда я просто изменю вариант ignore_dup_key.

+0

правой кнопкой мыши на первичный ключ в SSMS, и выберите Script -> Как Создать -> To New Window – Andomar

+0

Благодаря Andomar. Опубликуйте, что в качестве ответа я приму это. –

+0

Получите скрипт от источника управления, у вас есть все объекты и код базы данных под контролем источника, правильно? – Pondlife

ответ

2

Щелкните правой кнопкой мыши на первичный ключ в SSMS, и выберите Script -> Как Создать -> К новому окну

0

Я не думал, что SQL разрешит PK с IGNORE_DUP_KEY =, поэтому я протестировал SQL Server R2 R2.
Через скрипт можно создать таблицу с PK IGNORE_DUP_KEY = on. Но даже с drop и create не удалось изменить PK с одного на другой. Интересно, что скрипт запускался без ошибок, но он не менял PK с одного на другой. Вы можете найти разные результаты в своей среде.

0

Чтобы удалить индекс Вы можете запустить

DROP INDEX [IndexName] ON [TableName] 

Создание индекса с опцией IGNORE_DUP_KEY

CREATE UNIQUE INDEX [IndexName] ON [TableName]([ColumnNam]) 
WITH (IGNORE_DUP_KEY = ON) 
Смежные вопросы