En SQL Server se puede utilizar el autoincremento en una columna (por ejemplo, en un id) para aumentar automáticamente un número en cada registro (como el auto_increment de otros motores).

Autoincremento en SQL Server con Identity

Hoy vamos a ver cómo definir columnas incrementables usando IDENTITY en SQL Server.

Sintaxis de IDENTITY

La sintaxis al declarar una columna con identity es la siguiente:

identity(numeroDesdeDondeComienza, incrementosPorCadaInsercion)

Veamos algunos ejemplos

El modo de uso más común, sobre todo si venimos de otros motores en donde se comienza en uno y se aumenta de uno en uno, es el siguiente:

CREATE TABLE mascotas( id bigint identity(1,1) primary key, nombre varchar(50) NOT NULL, edad smallint NOT NULL ); 

Al insertar registros el ID va a aumentar de 1 en 1:

1 - Incrementar en 1 y comenzar conteo en 1

Este es el modo más común, pero podemos jugar con identity un poco más.

Aumentar de 2 en 2

La tabla se puede definir como identity(1, 2) para que comience en 1 y aumente de 2 en 2.

CREATE TABLE personas( id bigint identity(1,2) primary key, nombre varchar(50) NOT NULL, edad smallint NOT NULL );  insert into personas (nombre, edad) values ('John Galt', 30), ('Hannibal Lecter', 40), ('Wade Watts', 21); select * from personas; 

Al obtener los registros el resultado es el siguiente:

2 - Comenzar en 1 y aumentar en 2 - Identity en SQL Server

Comenzar incremento en otro valor

Para terminar, veamos el uso de identity(100, 2) que va a comenzar a contar los valores a partir del 100 y va a aumentar en pasos de 2.

La consulta de creación e inserción es la siguiente:

CREATE TABLE videojuegos( id bigint identity(100,2) primary key, nombre varchar(50) NOT NULL );  insert into videojuegos (nombre) values ('Super Mario Bros'), ('Snow Bros'), ('Metal Slug'), ('Resident Evil 4'), ('Color Sheep'), ('Cut the rope'); select * from videojuegos; 

Al obtener los datos, los registros comienzan en 100, el segundo es 102 y así sucesivamente:

3 - Comenzar en 100 en pasos de 2

Así es como se utiliza IDENTITY en SQL Server

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto