如何在具有唯一约束的字段中允许在SQL CE中输入大量空值

时间:2013-05-16 10:00:42

标签: sql-server-ce

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

create unique index ndx_id2 on test3 (id2);

出于唯一索引的目的,所有NULL值都被视为与所有其他NULL值不同,因此是唯一的。这是SQL-92标准的两种可能解释之一(标准中的语言含糊不清),并且是PostgreSQL,MySQL,Firebird和Oracle的解释。

Informix和Microsoft SQL Server遵循该标准的其他解释。

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

第二次INSERT返回

  

无法将重复值插入唯一索引。 [表名   = test3,约束名称= ndx_id2]

SQL CE出错但成功将记录添加到另一个DBMS,例如Sqlite。

如何在具有唯一约束的字段中允许在SQL CE中输入大量空值?

P.S。 Sql 2008 How to allow in the field with a unique constraint to enter a lot of null values ​​in SQL Server已解决此问题,但需要决定SQL CE

1 个答案:

答案 0 :(得分:0)

使用SQL Server Compact时,只允许使用唯一值,包括单个NULL值。