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