O SQL Server não oferece um meio de adicionar a propriedade identity a uma coluna já existente. Para resolver esse problema, é necessário recriar a tabela. A seguir mostro um exemplo de como realizar essa tarefa sem perder os dados já existentes. Metadados da tabela: create table cliente ( id integer not null, nome varchar(100) not null, endereco varchar(100), constraint cliente_pk primary key (id) ) 1. Realize uma cópia da tabela: select * into cliente_tmp from cliente 2. Apague a tabela: drop table cliente 3. Recrie a tabela com a propriedade identity definida: create table cliente ( id integer not null identity, nome varchar(100) not null, endereco varchar(100), constraint cliente_pk primary key (id) ) 4. Copie de volta os dados da tabela: set identity_insert cliente on go insert into cliente (id, nome, endereco) select * from cliente_tmp go set identity_insert cliente off go 5. Por fim, apague a cópia da tabela: drop table cliente_tmp
Comentários