sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo restablecer el valor de la columna de identidad en la tabla de SQL Server - Tutorial de SQL Server / T-SQL, parte 43


Empecemos por comprender primero la propiedad Identidad y luego podemos continuar con el paso, ¿cómo podemos restablecerla? Cree una tabla de SQL Server con columna de identidad utilizando el siguiente script

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

Vamos a insertar debajo de los registros usando las siguientes declaraciones
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Solo se insertará un registro y el segundo registro fallará ya que el tamaño de la cadena es mayor que el tamaño del tipo de datos de la columna Figura 1:Insertar registros en la tabla de SQL Server

Comprobar la identidad Valor de una columna: Para verificar el valor de identidad de una columna, podemos usar la declaración a continuación
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


Incluso la inserción falló para el segundo registro, pero el valor de identidad se incrementó. Si insertaremos el siguiente registro, el valor de identidad será 3 para eso, como podemos ver en la figura 3.

Aquí hay un par de formas de restablecer el valor de identidad de una columna después de eliminarla data.

Restablecer valor de identidad mediante TRUNCATE: Si queremos eliminar todo de la tabla y la tabla no tiene ninguna relación de clave externa, podemos truncar la tabla y eso limpiará los datos y establecerá el valor de identidad. Figura 3:use Truncar para limpiar la tabla y restablecer el valor de identidad


Restablecer valor de identidad mediante DBCC CHECKIDENT: Si la tabla está relacionada con cualquier otra relación de tabla (Clave principal-foránea), no podremos truncar la tabla. En ese caso, tenemos que eliminar los valores de la tabla usando la instrucción Eliminar y luego establecer el valor de identidad.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Fig. 4. Elimine datos de la tabla y use DBCC CHECKIDENT para restablecer el valor de identidad

Video de demostración:cómo restablecer el valor de la columna de identidad en la tabla de SQL Server