2013-04-06 56 views
2

我有500条记录表,并要插入新列的“序列号”从1开始插入新列序号

+0

你关心的现有行分配序号值的顺序!?如果是这样,请您描述该要求> – 2013-04-06 12:24:02

回答

1

这可以实现如下:

alter table YourTable 
add SrNo int identity(1,1) 
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'; 

您可能必须处理约束等,你会想这样做的交易。重点是只需向表中添加标识列,并以任意顺序分配标识值即可。如果你不关心现有值如何分配序列号,那么只需使用凯尔的答案。

-1

PostgreSQL中只是做: ALTER TABLE ttaabbllee ADD COLUMN columnName serial NOT NULL;,做..

+0

OP使用SQL Server而不是postgres – 2014-11-06 11:28:11