【发布时间】:2015-03-19 02:18:05
【问题描述】:
有什么方法可以简单地将非空唯一列添加到现有表中。像 default = 1++ 这样的东西?或者只是添加独特的列? 我尝试添加列,然后放置唯一约束,但 MS SQL 说: CREATE UNIQUE INDEX 语句终止,因为找到对象名称的重复键 (...) 重复键值为 ( )。
有什么方法可以简单地将列添加到具有唯一约束的现有工作表中? MS SQL 真的应该认为 null 是一个值吗?
【问题讨论】:
-
SQL Server 违反了 ANSI 标准,因为在标准唯一约束中它只允许一个 NULL 值(在这方面它认为两个 NULL 相等,而不管 ANSI_NULLS 设置如何)。要获得 ANSI 行为,您需要创建一个过滤的唯一索引,它只要求 所有非 NULL 行都是唯一的。
标签: sql sql-server unique