如何将not null unique列添加到现有表中

时间:2015-01-20 18:14:23

标签: sql sql-server unique

有没有办法简单地将not null unique列添加到现有表中。像default = 1 ++这样的东西?或者只是添加唯一的列? 我试图添加列,然后放入唯一的反对,但MS SQL说: CREATE UNIQUE INDEX语句终止,因为找到了对象名称的重复键(...)重复键值为(< NULL>)。

是否可以简单地将列添加到具有唯一约束的现有工作表中? MS SQL是否真的认为null是一个值?

3 个答案:

答案 0 :(得分:1)

你只需要{p> IDENTITY

ALTER TABLE TestTable
ADD ID INT IDENTITY(1, 1)

答案 1 :(得分:1)

  1. 使用默认值添加非空列。
  2. 将列更新为顺序整数(请参阅row_number()函数)
  3. 在新列上添加UNIQUE约束或UNIQUE索引
  4. 您可以将IDENTITY列添加到表格中(但是从问题来看,不清楚是否需要它)。

答案 2 :(得分:0)

如果您想要自动编号,可以添加标识。

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