如何将非空唯一列添加到现有 table

How to add not null unique column to existing table

有什么方法可以简单地将非空唯一列添加到现有 table。像 default = 1++ 这样的东西?或者只是添加唯一列? 我试图添加列,然后放置唯一约束,但 MS SQL 说: CREATE UNIQUE INDEX 语句终止,因为找到对象名称的重复键 (...) 重复键值为 ( < NULL > )。

有什么方法可以简单地将列添加到具有唯一约束的现有工作table? MS SQL 真的应该认为 null 是一个值吗?

IDENTITY 就是您所需要的:

ALTER TABLE TestTable
ADD ID INT IDENTITY(1, 1)
  1. 添加带有一些默认值的非空列。
  2. 将列更新为连续整数(参见 row_number() 函数)
  3. 在新列上添加 UNIQUE 约束或 UNIQUE 索引

您可以将 IDENTITY 列添加到 table(但问题是不清楚您是否需要它)。

如果你想要一个自动编号,你可以添加一个身份。

如果您需要自己填充值,您添加允许空值的列,更新值,检查以确保它们是唯一的并且没有空值,然后添加唯一约束和不为空 属性。最好在维护 window 期间执行此操作,此时没有其他人会更改 table 中的数据。