Inserir em um campo IDENTITY com T-SQL

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:

  1. Criar uma tabela para teste: Table_TEST
  2. Inserir um valor no campo ID (que é IDENTITY)
    1. 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.
  3. Habilitar a propriedade IDENTI_INSERT da tabela;
  4. Inserir os valores;
  5. Desabilitar propriedade IDENTI_INSERT da tabela; e
  6. Selecionar para teste.

o/ só mais um pouco de banco de dados! \o

1 thought on “Inserir em um campo IDENTITY com T-SQL

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *