SQL Server: Как установить автоинкремент для таблицы со строками в ней:
Эта стратегия физически копирует строки дважды, что может занять гораздо больше времени, если копируемая таблица очень велика,
Вы можете сохранить свои данные, удалить и перестроить таблицу с автоинкрементом и первичным ключом, а затем загрузить данные обратно.
Я расскажу вам пример:
Шаг 1, создать таблицу foobar (без первичного ключа или автоинкремента):
CREATE TABLE foobar(
id int NOT NULL,
name nchar(100) NOT NULL,
)
Шаг 2, вставить несколько строк
insert into foobar values(1, 'one');
insert into foobar values(2, 'two');
insert into foobar values(3, 'three');
Шаг 3, скопировать данные foobar во временную таблицу:
select * into temp_foobar from foobar
Шаг 4, удалить таблицу foobar:
drop table foobar;
Шаг 5, воссоздайте свою таблицу с первичным ключом и свойствами автоинкремента:
CREATE TABLE foobar(
id int primary key IDENTITY(1, 1) NOT NULL,
name nchar(100) NOT NULL,
)
Шаг 6, вставьте свои данные из временной таблицыобратно в foobar
SET IDENTITY_INSERT temp_foobar ON
INSERT into foobar (id, name) select id, name from temp_foobar;
Шаг 7, сбросьте временную таблицу и проверьте, работает ли она:
drop table temp_foobar;
select * from foobar;
Вы должны получить этои когда вы проверяете таблицу foobar, столбец идентификатора автоматически увеличивается на 1, а идентификатор является первичным ключом:
1 one
2 two
3 three