Configuración de campos Identity

Los campos IDENTITY, aquellos que almacenan valores automáticamente asignados, son tan usados a veces, como no conocidos. Debemos saber que se pueden "inicializar" para que comiencen su valor desde aquel que deseemos al crear la tabla, ¡y mucho más!. Por ejemplo creemos una simple tabla con un ID y un campo texto:

CREATE TABLE [dbo].[MiTabla](
[ID] [int] IDENTITY(51,2) NOT NULL,
[nombre] [nchar](10) NULL
ON [PRIMARY]
GO

INSERT INTO [MiTabla] VALUES ('Jose')
INSERT INTO [MiTabla] VALUES ('Yolanda')
GO

Fijémonos que el ID con el que empieza el ID será '51' con la primera inserción, y que se irá incrementando en '2' con las sucesivas:


¿Qué ocurre si borramos registros para luego insertar otros nuevos?: 

* Un 'DELETE from MiTabla' hará que los nuevos registros que se inserten sigan por el "id" consecutivamente según el valor del último id insertado (borrado o no).

* Sin embargo un 'TRUNCATE TABLE MiTabla', eliminaría igualmente los registros, pero resetearía el "id" al original, en este caso "51".


Es importante recordar la sentencia RESEED, caso de necesitar cambiar el "id" por el que queremos que sigan los nuevos registros. Por ejemplo la siguiente sentencia hará que el contador se sitúe en 100 y por tanto el primer nuevo registro tendría un ID=102 (100+2):

DBCC CHECKIDENT ('MiTabla', RESEED, 100)
GO


¡Saludos!

No hay comentarios :

Publicar un comentario

Buscar en el Blog: