2009-08-15 28 views
1

SQL Serverは一意性制約のために1つのヌルのみの利点は何ですか?sqlの一意制約

+0

どういう意味ですか?ユニークな制約の場合、nullを2回持つことはできません。 –

+0

nullの意味の1つが「不明」なので、明らかではないかもしれません。 1つは未知数=もう1つは?ほとんどのSQLではnullを使用していません!言い換えれば(null = null)はfalseです。 – automatic

+0

はい、まあ、それでは、SQLがユニーク制約の強制で間違っていると主張できます。ヌル=ヌルが間違っていることはばかげていることに私は起こりますが。しかし、私の気持ちは変わりません:) –

答えて

1

NULLを他の値と同じようにユニークである必要があると考えると、利点があります。しかし、ほとんどの開発者はNULLが値の不在であるとみなし、2つのNULLが等しくない場合があります。 SQLで回避する必要のある制限(他のDBMSとは異なり)

+0

私は 'ほとんどの開発者'がそれを考慮しないと言いますが、 'SQL Server'はそれを考えています。個人的に私はそれが大きくて、とても迷惑なミスだと思います。私の本ではnullが明らかにnullで、null = nullです。私は 'それが決して他のものと等しくないことを確認する'という価値を今までには必要としていません。しかし、私は逃げる。これはスレッドに値する議論です。 –

+1

私の場合、この特定のMSSQLの「機能」は通常は制限されているので、既知の方法の1つを使用して回避する必要があります。通常、ビューメソッドは最もクリーンです。 –

+0

私はフィルタリングされたインデックスは、それを回避するための最良の方法の一つだと思います。 (MSSQL 2008以降) –