1
create table test3
(
id int PRIMARY KEY,
id2 int
);

create unique index ndx_id2 on test3 (id2);

一意のインデックスの目的で、すべてNULLの値は他のすべての値とは異なると見なされるNULLため、一意です。これは、SQL-92 標準の 2 つの可能な解釈 (標準の言語はあいまいです) の 1 つであり、PostgreSQL、MySQL、Firebird、および Oracle が従う解釈です。

Informix と Microsoft SQL Server は、標準の別の解釈に従います。

INSERT INTO test3(id, id2) VALUES (1, null);
INSERT INTO test3(id, id2) VALUES (2, null);

2 番目の INSERT が返されます

一意のインデックスに重複する値を挿入することはできません。[ テーブル名 = test3、制約名 = ndx_id2 ]

SQL CE でエラーが発生しましたが、別の DBMS (Sqlite など) にレコードが正常に追加されました。

一意の制約を持つフィールドで、SQL CE で多くの null 値を入力できるようにする方法は?

PS この問題は Sql 2008 で解決されました SQL Server で一意の制約を持つフィールドに多くの null 値を入力できるようにする方法ですが、SQL CE の決定が必要です

4

1 に答える 1

0

SQL Server Compact では、単一の NULL 値を含め、一意の値のみが許可されます。

于 2013-05-16T11:14:46.800 に答える