データベーステーブルの主キー/インデックスを変更して、インデックスオプションignore_dup_key
を「オン」に変更したいと思います。
この質問によると、「主キーに対してignore_dup_keyをオンに設定できますか?」インデックスを削除して、新しいインデックスを作成する必要があります。
インデックスを削除する前に、インデックスを再作成するコマンドを取得するにはどうすればよいですか?次に、ignore_dup_key
オプションを変更します。
データベーステーブルの主キー/インデックスを変更して、インデックスオプションignore_dup_key
を「オン」に変更したいと思います。
この質問によると、「主キーに対してignore_dup_keyをオンに設定できますか?」インデックスを削除して、新しいインデックスを作成する必要があります。
インデックスを削除する前に、インデックスを再作成するコマンドを取得するにはどうすればよいですか?次に、ignore_dup_key
オプションを変更します。
SSMSの主キーを右クリックし、[スクリプト]->[作成中]->[新しいウィンドウへ]を選択します。
別の関連する質問のコメント投稿者が示すように、テーブルに対してIGNORE_DUP_KEYを有効にできます。
ALTER TABLE [TableName] REBUILD WITH (IGNORE_DUP_KEY = ON);
そして元に戻す:
ALTER TABLE [TableName] REBUILD WITH (IGNORE_DUP_KEY = OFF);
SQLでIGNORE_DUP_KEY=がオンのPKが許可されるとは思わなかったため、SQL2008R2でテストしました。
スクリプトを介して、PKIGNORE_DUP_KEY=がオンのテーブルを作成できます。しかし、ドロップアンドクリエイトを使用しても、PKをオフからオンに変更することはできませんでした。興味深いのは、スクリプトがエラーなしで実行されたが、PKがオフからオンに変更されなかったことです。ご使用の環境で異なる結果が見つかる場合があります。
インデックスを削除するには実行できます
DROP INDEX [IndexName] ON [TableName]
Ignore_Dup_Keyオプションを使用してインデックスを作成するには
CREATE UNIQUE INDEX [IndexName] ON [TableName]([ColumnNam])
WITH (IGNORE_DUP_KEY = ON)