例外:
Violation of UNIQUE KEY constraint 'UQ__user_dat__AB6E61641273C1CD'. Cannot insert duplicate key in object 'dbo.user_data'.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)
AB6E61641273C1CD =唯一且为NULL的电子邮件
我的SQL语句不会为电子邮件插入值.所以我假设它将默认为null(尽管我在创建表时从未写过默认(null)语句).
问题是什么?代码在sqlite中完美地工作.
如果您正在运行SQL 2008,则可以使用此处建议的筛选索引.
create unique nonclustered index idx on dbo.DimCustomer(emailAddress)
where EmailAddress is not null;
Run Code Online (Sandbox Code Playgroud)
如果您想要一个忽略Null的唯一键,则在SQL Server中是不可能的.但是,本文将介绍如何通过以下方式获取该行为
此外,AlexKuznestov的回答指出,在SQL 2008中,您可以提供过滤索引.
其中最好的是索引视图,但像触发器一样,它的存在并不总是显而易见的.计算列很有趣,但您需要能够保证实际数据永远不会与您"封装"的列冲突.
| 归档时间: |
|
| 查看次数: |
6656 次 |
| 最近记录: |