Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como redefinir o valor da coluna de identidade na tabela do SQL Server - Tutorial do SQL Server/T-SQL Parte 43


Vamos começar entendendo a propriedade Identity primeiro e, em seguida, podemos prosseguir para a etapa, como podemos redefini-la? Crie uma tabela do SQL Server com a coluna de identidade usando o script abaixo

USE TEST
GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))

Vamos inserir os registros abaixo usando as instruções abaixo
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Apenas um registro será inserido e o segundo registro falhará, pois o tamanho da string é maior que o tamanho do tipo de dados da coluna Fig 1-Inserir registros na tabela SQL Server

Verificar a identidade Valor de uma coluna: Para verificar o valor de identidade de uma coluna, podemos usar a instrução abaixo
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


Até a inserção falhou para o segundo registro, mas o valor de identidade é incrementado. Se inserirmos o próximo registro, o valor de identidade será 3 para isso, como podemos ver na Figura 3.

Aqui estão algumas maneiras de redefinir o valor de identidade de uma coluna após a exclusão data.

Redefinir valor de identidade usando TRUNCATE: Se quisermos excluir tudo da tabela e a tabela não tiver nenhuma relação de chave estrangeira, podemos truncar a tabela e isso limpará os dados e definirá o valor de identidade Fig 3-Use Truncate para limpar a tabela e redefinir o valor de identidade


Redefinir valor de identidade usando DBCC CHECKIDENT: Se a tabela estiver em relação com qualquer outra relação de tabela (Chave Primária-Estrangeira), não poderemos truncar a tabela. Nesse caso, temos que excluir os valores da tabela usando a instrução Delete e, em seguida, definir o valor de identidade.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Fig 4. Exclua os dados da tabela e use DBCC CHECKIDENT para propagar novamente o valor de identidade

Demonstração em vídeo:como redefinir o valor da coluna de identidade na tabela do SQL Server