T-SQL – INSERT IDENTITY como solução para o seguinte cenário:
Seu banco de dados, no SQL Server, tem tabelas “de classificação (como costumo chamar)”, como por exemplo: Status com campos ID, Nome (valores: 1=’Ativo’, 2=’Inativo’, 3=’Suspenso’). E por algum motivo esta tabela foi criada com campo ID marcada coma propriedade IDENTITY.
Em T-SQL a propriedade IDENTITY habilita a auto-geração de valor para o campo com esta propriedade.
Problema
A aplicação que acessa seu banco de dados, pode inserir, atualizar e deletar esses valores, mudando a sequencia desses números. Que deveriam permanecer iguais em diferentes ambientes (considerando um cenário de ambiente de desenvolvimento, homologação e produção, por exemplo).
Solução
No SQL Server 2000 (ou superior), pode-se inserir valores em campos IDENTITY da seguinte forma:
O Script acima, segue a seguinte sequencia:
- Criar uma tabela para teste: Table_TEST
- Inserir um valor no campo ID (que é IDENTITY)
erro: Não é possível inserir um valor explícito para a coluna de identidade na tabela ‘Table_TEST’ quando IDENTITY_INSERT está definido como OFF. - Habilitar a propriedade IDENTI_INSERT da tabela;
- Inserir os valores;
- Desabilitar propriedade IDENTI_INSERT da tabela; e
- Selecionar para teste.
o/ só mais um pouco de banco de dados! \o
show!