2013-04-06 3 views
2

У меня есть таблица с 500 записей в нем и хотите вставить новый столбец как «серийный номер», начиная с 1.Вставка нового столбца для серийного номера

+0

Вы заботитесь о порядке существующих строки присваиваются значением серийного номера!? Если да, не могли бы вы описать это требование> –

ответ

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

Смежные вопросы