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).
![](https://parzibyte.me/blog/wp-content/uploads/2019/06/Autoincremento-en-SQL-Server-con-Identity.png)
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:
![](https://parzibyte.me/blog/wp-content/uploads/2019/06/1-Incrementar-en-1-y-comenzar-conteo-en-1.png)
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:
![](https://parzibyte.me/blog/wp-content/uploads/2019/06/2-Comenzar-en-1-y-aumentar-en-2-Identity-en-SQL-Server.png)
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:
![](https://parzibyte.me/blog/wp-content/uploads/2019/06/3-Comenzar-en-100-en-pasos-de-2.png)
Así es como se utiliza IDENTITY en SQL Server
Pingback: Conectar PHP y SQL Server usando PDO - CRUD de ejemplo - Parzibyte's blog