SQL Server では、NULL に対する比較で NULL が返される残りの SQL のように、一意のインデックスが NULL を「単なる別の値」として扱うようです。
t
null 許容列に一意のインデックスを持つテーブル ( ) があるとしK
ます。
K V
0 32
1 12
3 45
すべて良い。
しかし、それも許可します
K V
0 32
1 12
3 45
NULL 89 <-- Baaad
逆に、次のことも可能になります。
K V
NULL 89
0 32 <-- not good
NULL キー値を使用して、それ以上の内訳が不可能な値を表しているため、これは潜在的な災害になる可能性があることがわかります。合計と内訳があると、二重カウントまたは不一致が発生します。
人々が反対のことをしたい (複数の NULL を許可する) 質問が何千もあるように見えますが、NULL を NULL として扱いたいという質問はありません。
一意のインデックスでSQL Server が NULL を NULL として処理するようにするにはどうすればよいですか (そして、1 つの列で 1 つの NULLまたは任意の数の一意の値のみを許可します)。