¿Conectar Llave foránea simple a llave primaria compuesta en SQL SERVER 2005?
-
jueves, 15 de marzo de 2012 0:28
SQL SERVER 2005
lo que quiero hacer es lo siguiente :
en una tabla tener una llave foránea de un solo campo que se conecte a otra tabla donde la llave primaria es compuesta (es decir dos campos) y uno de esos campos es al que me quiero conectar con el foreing key
El Error en SQL SERVER 2005 ES EL SIGUIENTE
No hay claves principales ni candidatas en la tabla a la que se hace referencia ('prestamo') que
concuerden con la lista de columnas que hace referencia en la clave externa fk_estado_libro
AQUI LAS DOS TABLAS
create table prestamo (
num_prest int not null,
cod_libro int not null,
fecha_prest smalldatetime,
fechadev_prest smalldatetime,
id_usuario int not null,
constraint pk_prestamo_libro primary key(num_prest,cod_libro),
constraint fk_libro_prestamo foreign key (cod_libro)references libro(cod_libro),
constraint fk_usuario_prestamo foreign key (id_usuario)references usuario(id_usuario),
);
create table estado(
cod_libro int not null ,
nom_est_libro varchar(15),
num_prest int not null ,
nom_est_prest varchar(15),
constraint fk_estado_prestamo foreign key (num_prest) references prestamo (num_prest )
);
Como ven quiero que en la segunda tabla el campo NUM_PREST se conecte con la tabla PRESTAMO y su campo NUM_PREST pero como la llave primaria es NUM_PREST Y COD_LIBRO
no lo permite AYUDA
quiero hacerlo con codigo transact
AGRADEZCO A QUIEN ME PUEDA AYUDAR !!
Todas las respuestas
-
jueves, 15 de marzo de 2012 1:50
Hola. Con código Transact-SQL te queda algo de este estilo:
create table prestamo (
num_prest int not null,
cod_libro int not null,
fecha_prest smalldatetime,
fechadev_prest smalldatetime,
id_usuario int not null
);
ALTER TABLE prestamo ADD CONSTRAINT pk_prestamo_libro PRIMARY KEY CLUSTERED (
num_prest,
cod_libro
);create table estado(
cod_libro int not null ,
nom_est_libro varchar(15),
num_prest int not null ,
nom_est_prest varchar(15),
);ALTER TABLE prestamo WITH CHECK ADD CONSTRAINT
fk_estado_prestamo FOREIGN KEY (num_prest) REFERENCES
estado (num_prest)
Prueba y nos cuentas que tal...
Saludos,
Guillermo Taylor F.
IT Pro & Xbox gamer
My blog- Propuesto como respuesta qwalgrandeMVP, Moderator domingo, 18 de marzo de 2012 12:09
- Marcado como respuesta Eduardo PorteschellerMicrosoft Community Contributor, Moderator lunes, 19 de marzo de 2012 12:52
-
miércoles, 04 de abril de 2012 3:18
No Me Ha Funcionado !
De Todas Maneras , Gracias Por Tu Ayuda !

