SQL Server: como adicionar a propriedade identity a uma coluna já existente
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
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
muito facil de aplicar
parabens...