我有一个SQL Server 2012数据库.我调用的表REFERENCE有一个名为的列LOCATOR.
我的用户正在输入数据,但有时他们会输入两个不同的行LOCATOR.有没有办法让我创建一个错误,只有当LOCATOR它不为空时才出现?
这是UNIQUE约束所做的(在大多数DBMS中),不允许列中具有相同值的2行 - 而忽略NULL值.
问题是SQL-Server以不同于其他DBMS的方式实现了唯一约束,并且NULL在列上定义了唯一约束或索引时不允许多行.
解决方案是使用部分索引:
CREATE UNIQUE INDEX Locator_UQ -- name of the index
ON Reference (Locator)
WHERE Locator IS NOT NULL ;
Run Code Online (Sandbox Code Playgroud)
最小的测试:SQL-Fiddle
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |