gpt4 book ai didi

sql-server - 具有重复 NULL 的 SQL Server UNIQUE 约束

转载 作者:行者123 更新时间:2023-12-01 19:09:40 24 4
gpt4 key购买 nike

Possible Duplicate:
How do I create unique constraint that also allows nulls in sql server

我有一个表,我需要强制其中的列具有唯一值。此列必须可为空,并且根据业务逻辑,应允许多个 NULL 值,而不允许其他重复值。

SQL Server UNIQUE 约束在这种情况下并不好,因为它将 NULL 视为常规值,因此它将拒绝重复的 NULL。

目前,值(value)唯一性是由 BLL 授予的,因此我不会寻找肮脏的黑客手段来使其发挥作用。我只是想知道是否有一个干净的解决方案来在数据库中强制执行此约束。

是的,我知道我可以编写一个触发器来做到这一点:触发器是唯一的解决方案吗? (或者最好的解决方案?)

最佳答案

如果您使用的是 SQL Server 2008(不适用于早期版本),则存在过滤索引的概念。您可以在表的筛选子集上创建索引。

CREATE UNIQUE INDEX indexName ON tableName(columns) INCLUDE includeColumns 
WHERE columnName IS NOT NULL

关于sql-server - 具有重复 NULL 的 SQL Server UNIQUE 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com