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的解释是其中之一。如何允许在该领域具有唯一约束在SQL Server
Informix和Microsoft SQL Server遵循标准的其他解释。
INSERT INTO test3(id, id2) VALUES (1, null);
INSERT INTO test3(id, id2) VALUES (2, null);
第二插入返回
重复的值不能被插入到一个唯一索引。 [表名 = TEST3,约束名称= ndx_id2]
错误SQL Server,但成功地增加了记录到其他的DBMS,SQLite的例如。
如何允许在字段中使用唯一约束在SQL Server中输入大量空值?
您的脚本不允许为空值。相反,我需要添加很多空值。示例:1,2,null,null,null,null,3. – user2217261 2013-04-06 15:32:39
您应该被允许插入多个空值 - 请参见[SQL Fiddle]上的示例(http://sqlfiddle.com/#!6/dbf85/ 1/0) – Andomar 2013-04-06 17:44:09
@ user2217261:[Works for me](http://sqlfiddle.com/#!3/fa6dc/3)。 – 2013-04-06 17:44:21