我的表中有500条记录,并希望从1开始插入新列作为“序列号”。
答案 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)
就是:
ALTER TABLE ttaabbllee ADD COLUMN columnName serial NOT NULL;
并完成了!..