SQL Identity Insert

SQL Identity Insert
O SQL Server nos fornece uma cláusula de identidade que permite criar colunas de serial ou incremento automático. Se uma coluna for definida como uma coluna de identidade, seus valores serão gerados automaticamente à medida que novos registros são adicionados à tabela.

Isso fornece a capacidade de ter um identificador exclusivo para cada coluna sem inspeção manual de banco de dados.

Identidade do SQL Server

No SQL Server, você pode criar uma coluna de identidade como mostrado:

Crie Table Table_name (
Column_Name int Identity
);

O valor especificado da coluna acima é gerado automaticamente quando você adiciona um novo registro.

Considere o exemplo simples mostrado abaixo:

Crie usuários de tabela (
Id int identidade,
Nome Varchar (255)
);

Em circunstâncias normais, não precisamos especificar o valor de uma coluna de identidade durante a inserção de dados. Como mencionado, o valor é gerado automaticamente para cada inserção de registro, como mostrado:

Inserir em usuários (nome) valores ('Dorothy Michelle');

O acima deve inserir o registro na tabela com um valor único para a coluna de identificação. Por exemplo:

Observe que a coluna de identificação contém um valor, embora não tenhamos especificado um? Esse é o poder das colunas de identidade.

Servidor SQL Permitir inserção de identidade

Mas e se você tentar adicionar o valor de uma coluna de identidade manualmente? Por exemplo:

Inserir em usuários (id, nome) valores (2, 'Jeff Arty');

A consulta acima retornará um erro como mostrado:

O SQL Server impede que você adicione explicitamente valores a uma inserção de identidade.

Podemos resolver isso ativando o recurso de inserção de identidade no SQL Server.

A sintaxe para este comando é como mostrado:

Definir identity_insert table_name

Para permitir a inserção da identidade na tabela de usuários, podemos executar:

Defina os usuários do identity_insert;

Para desativar a inserção da identidade em uma tabela específica, defina o valor para desligar.

Coluna de identidade de retenção do servidor SQL

Se você excluir um registro da tabela, o valor da coluna de sua identidade não será reutilizado. Isso pode levar à inconsistência e fragmentação no banco de dados.

Você pode sincronizar a coluna de identidade, como mostrado no comando abaixo:

DBCC CheckIdent (Table_Name, Reseed, 1)

A consulta acima deve realizar a coluna de identidade da tabela especificada a partir do índice 1.

Conclusão

Neste artigo, exploramos a coluna de identidade no servidor SQL e como ativá -la ou desativá -la em uma tabela.

Eu espero que tenha achado isto útil!