Como Crear de forma fácil Columna Identity en SQL Server

El atributo Identity puede ser utilizado al crear tablas con campos numéricos (int,smallint, bigint, y tinyint), en sentencias Create Table y Alter Table.

Pero como crear de forma fácil una Columna Identity?, antes de saber Como, debe entender que en que consiste.

Es aquella columna que nos permite generar valores secuenciales e incrementables automáticamente cada vez que se inserta un nuevo registro en una tabla, Sql se encarga de asignarle el valor numérico correspondiente a la columna.

Veamos como funciona, creando una tabla con una columna IDENTITY:

CREATE TABLE tbIdentiy 
(
Id Int NOT NULL IDENTITY(1,1) PRIMARY KEY,
Descripcion Varchar(20) NOT NULL 
)
Go

Podemos observar en el anterior script, que la columna identidad (id) es entera, no se permiten valores nulos (NOT NULL)  esta parametrizada como IDENTITY(1,1), esto significa que inicia en 1 y se incrementa de 1 en 1, además la columna la establecemos como llave primaria (PRIMARY KEY), no es necesario, pero es recomendable establecer como llave primaria a este tipo de columnas.

Con la tabla ya creada, veamos como insertamos los datos:

Insert Into tbIdentiy(Id,Descripcion) Values(1,'Vb.Net')
Go


Ejecutando la anterior sentencia sql nos genera un error, ya que estamos estableciendo el valor 1 a la columna IDENTITY.


Msg 544, Level 16, State 1, Line 1
Cannot insert explicit value for IDENTITY column in table 'tbIdentiy' when IDENTITY_INSERT is set to OFF.

Ejecutemos la sentencia, pero sin incluir la columna Id

Insert Into tbIdentiy(Descripcion) Values('Vb.Net')
Go
(1 row(s) affected)

La ejecución fue satisfactoria, consultando la tabla

Select Id,Descripcion From Dbo.tbIdentiy


Si insertamos mas registros en la tabla:

Insert Into tbIdentiy(Descripcion) Values('C#')
Go
Insert Into tbIdentiy(Descripcion) Values('Sql Server')
Go

Identity 3 Rows






Nos damos cuenta, que por cada inserción en la tabla, Sql incrementa automáticamente la columna Id y esto es por el atributo IDENTITY.

Como recomendación anexo post que nos permite Inicializar un campo IDENTITY.

Espero les sirva esta documentación, hasta pronto.
Share:

0 comments:

Publicar un comentario