插入序列号的新列

时间:2013-04-06 11:55:37

标签: sql sql-server database insert-update row-number

我的表中有500条记录,并希望从1开始插入新列作为“序列号”。

3 个答案:

答案 0 :(得分:3)

如果您关心身份值的分配顺序,最好这样做:

CREATE TABLE dbo.NewTable
(
  SerialNumber INT IDENTITY(1,1),
  ... other columns from original table ...
);

INSERT dbo.NewTable(...other columns...)
  SELECT ...other columns...
  FROM dbo.OriginalTable
  ORDER BY ...ordering criteria...
  OPTION (MAXDOP 1); -- to prevent parallelism from messing with identity

DROP TABLE dbo.OriginalTable;

EXEC sp_rename N'dbo.NewTable', N'OriginalTable', N'OBJECT';

您可能需要处理约束等,并且您希望在事务中执行此操作。关键是只需向表中添加标识列,并以任意顺序分配标识值。如果您不关心如何为现有值分配序列号,那么只需使用Kyle的答案。

答案 1 :(得分:1)

这可以通过以下方式实现:

alter table YourTable
add SrNo int identity(1,1)

答案 2 :(得分:-1)

PostgreSQL中的

就是: ALTER TABLE ttaabbllee ADD COLUMN columnName serial NOT NULL;并完成了!..