7

null 値を受け入れることができる列に一意のインデックスを持つテーブルがあります。問題は、この構造が NULL 値を持つ 1 つの行しか受け入れられないことがわかったことです。NULL 値で 2 行目を追加しようとすると、次のようなエラーが発生します。「オブジェクトに重複するキー行を挿入できません….」</p>

この列にインデックスを保持し、複数の行に NULL 値を追加する機能を維持するためにできることはありますか?

4

1 に答える 1

29

はい、フィルター選択されたインデックスを使用してこれをサポートできます。既存のインデックスを削除して、このように新しいインデックスを作成するだけです

CREATE UNIQUE INDEX Index_Name ON TableName(ColumnName)
WHERE ColumnName IS NOT NULL

これにより、NULL 値の重複が可能になります。これについての詳細が必要な場合は、ここに詳細な記事があります。

http://blog.sqlauthority.com/2008/09/01/sql-server-2008-introduction-to-filtered-index-improve-performance-with-filtered-index/

于 2013-03-04T16:19:19.227 に答える