Как добавить новый столбец идентификаторов в таблицу в SQL Server? - PullRequest
20 голосов
/ 13 сентября 2010

Я использую SQL Server 2008 Enterprise. Я хочу добавить столбец идентификаторов (как уникальный кластерный индекс и первичный ключ) в существующую таблицу. Целочисленное автоматическое увеличение на 1 столбец идентификаторов в порядке. Любые решения?

Кстати: мое наибольшее недоразумение касается существующих строк, как автоматически заполнять новые данные столбца идентификаторов?

спасибо заранее, George

Ответы [ 3 ]

44 голосов
/ 13 сентября 2010

вы можете использовать -

alter table <mytable> add ident INT IDENTITY

Это добавляет в вашу таблицу столбец идентификаторов и добавляет данные, начиная с 1 и увеличивая на 1.

Чтобы добавить кластерный индекс -

CREATE CLUSTERED INDEX <indexName> on <mytable>(ident) 
0 голосов
/ 10 июля 2019

Не всегда у вас есть разрешения для команд DBCC.

Решение № 2:

create table #tempTable1 (Column1 int)
declare @new_seed varchar(20) = CAST((select max(ID) from SomeOtherTable) as varchar(20))
exec (N'alter table #tempTable1 add ID int IDENTITY('+@new_seed+', 1)')
0 голосов
/ 20 июля 2012

имейте в виду 1 подход, но не уверены, осуществим ли он с вашей стороны или нет.Но позвольте мне заверить вас, это очень эффективный подход.Вы можете создать таблицу со столбцом идентификаторов и вставить все данные в эту таблицу.И с тех пор обработка любых дублирующих данных - детская игра.Существует два способа добавления столбца идентификаторов в таблицу с существующими данными:

Create a new table with identity, copy data to this new table then drop the existing table followed by renaming the temp table.

Create a new column with identity & drop the existing column

Для справки я нашел 2 статьи: http://blog.sqlauthority.com/2009/05/03/sql-server-add-or-remove-identity-property-on-column/ http://cavemansblog.wordpress.com/2009/04/02/sql-how-to-add-an-identity-column-to-a-table-with-data/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...