Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Inquietud Clave Primaria Autogenerada

Estas en el tema de Inquietud Clave Primaria Autogenerada en el foro de SQL Server en Foros del Web. Hola comunidad tengo la siguiente inquietud. Estoy aprendiendo SQL server 2012 y a la hora de crear una tabla utilizo el siguiente codigo Código: USE ...
  #1 (permalink)  
Antiguo 30/07/2014, 09:11
 
Fecha de Ingreso: julio-2014
Mensajes: 3
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Inquietud Clave Primaria Autogenerada

Hola comunidad tengo la siguiente inquietud. Estoy aprendiendo SQL server 2012 y a la hora de crear una tabla utilizo el siguiente codigo

Código:
USE Prueba
GO
CREATE TABLE Libros(
          IDLibros smallint IDENTITY (1,1) PRIMARY KEY,
          Nombre varchar(50) NOT NULL,
          ISBN varchar(50) NOT NULL
)
Segun investigue la funcion IDENTITY empezaria con el id=1 y aumentaria en 1 por cada insercion. Mi duda es que esa id autogenerada no identifica de manera unica a cada tabla, por ejemplo si existieran dos libros

PROGRAMACION 1
PROGRAMACION 2

y los inserto

Código:
INSERT INTO Libros ('PROGRAMACION 1', '968-521-59X')
INSERT INTO Libros ('PROGRAMACION 2, '968-521-58D)
en la tabla quedarian los siguientes datos
ID NOMBRE ISBN
1- PROGRAMACION 1- 68-521-59X
2- PROGRAMACION 2- 8-521-58D

pero si vuelvo a realizar la insercion

INSERT INTO Libros ('PROGRAMACION 1', '968-521-59X')

quedaria un regstro

3- PROGRAMACION 1- 968-521-59X

que obviamente es una repeticion. se que lo mejor seria usar como PK el ISBN pero no lo hago para aprender a usar la funcion IDENTITY.

Pense en una solucion que seria crear un disarador que compruebe los datos de la fila a insertar con los datos de la tabla pero lo consideraria ineficiente.

Les agradezco de antemano su claboracion, Saludos
  #2 (permalink)  
Antiguo 30/07/2014, 09:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Inquietud Clave Primaria Autogenerada

Identity es un "autoincrementador" no te genera un constraint, para hacer lo que quieres puedes ya se agregar el campo a la llave primaria o crear un constraint de tipo unique para tus datos(ojo unique permite el uso de un Valor NULL en tus datos mientras que una PK no permite NULL's)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: clave, funcion, primaria, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.