ID - Tutorial de SQL Server
ID - Tutorial de SQL Server
http://www.sqlserverya.com.ar/temarios/descripcion.php?cod=19&punto=13 1/1
13 - Campo con atributo Identity
Un campo numrico puede tener un atributo extra "identity". Los valores de un campo con este atributo
genera valores secuenciales que se inician en 1 y se incrementan en 1 automticamente.
Se utiliza generalmente en campos correspondientes a cdigos de identificacin para generar valores
nicos para cada nuevo registro que se inserta.
Slo puede haber un campo "identity" por tabla.
Para que un campo pueda establecerse como "identity", ste debe ser entero (tambin puede ser de un
subtipo de entero o decimal con escala 0, tipos que estudiaremos posteriormente).
Para que un campo genere sus valores automticamente, debemos agregar el atributo "identity" luego de
su definicin al crear la tabla:
create table libros(
codigo int identity,
titulo varchar(40) not null,
autor varchar(30),
editorial varchar(15),
precio float
);
Cuando un campo tiene el atributo "identity" no se puede ingresar valor para l, porque se inserta automticamente tomando el ltimo valor como
referencia, o 1 si es el primero.
Para ingresar registros omitimos el campo definido como "identity", por ejemplo:
insert into libros (titulo,autor,editorial,precio)
values('El aleph','Borges','Emece',23);
Este primer registro ingresado guardar el valor 1 en el campo correspondiente al cdigo.
Si continuamos ingresando registros, el cdigo (dato que no ingresamos) se cargar automticamente siguiendo la secuencia de autoincremento.
No est permitido ingresar el valor correspondiente al campo "identity", por ejemplo:
insert into libros (codigo,titulo,autor,editorial,precio)
values(5,'Martin Fierro','Jose Hernandez','Paidos',25);
generar un mensaje de error.
"identity" permite indicar el valor de inicio de la secuencia y el incremento, pero lo veremos posteriormente.
Un campo definido como "identity" generalmente se establece como clave primaria.
Un campo "identity" no es editable, es decir, no se puede ingresar un valor ni actualizarlo.
Un campo de identidad no permite valores nulos, aunque no se indique especificamente. Si ejecutamos el procedimiento "sp_columns()" veremos que en el
campo "codigo" en la columna "TYPE_NAME" aparece "int identity" y en la columna "IS_NULLABLE" aparece "NO".
Los valores secuenciales de un campo "identity" se generan tomando como referencia el ltimo valor ingresado; si se elimina el ltimo registro ingresado (por
ejemplo 3) y luego se inserta otro registro, SQL Server seguir la secuencia, es decir, colocar el valor "4".
Finalizar
Diplomado en
Autmatas
mexico.seas.es
Aprenda a programar autmatas
Online. Infrmese aqu!