Llaves compuestas ayuda
Publicado por Jisk (8 intervenciones) el 23/09/2010 06:03:25
Tengo un problema al relacionar una llave foranea que esta asu vez esta como llave compuesta
Umm se supone que la tabla "Presup"[Presupuesto] tiene una llave que es el año y esta compuesta por una llave llamada "Poa_id" y a su vez tiene una cantidad X
Ejemplo
*Id_Año * Poa_id Cansup
2009 001 12000
2009 002 12000
*Llaves para formar la compuesta por puede aver varios 2009
La siguiente tabla "Mespre" corresponde meses en que se puede dividir todo el [Presup]presupuesto del año 2009 y del Poa_id 001.
La tabla "Mespre" esta formada por una llave autonumerica "Id_Mes" seguido del nombre del Mes "Nommes" y de una Canditad "Canpre" y sus llaves foraneas como Años_Id y Id_Poa las cuales corresponden de la tabla Presup
Ejemplo:
*Id_mes -- Nommes -- Campre --- **Años_Id -- **Id_Poa
1 Enero 1000 2009 001
2 Enero 1000 2009 002
*Llave primaria
**LLave foranea
Un presupuesto de un Año [2009] y que corresponde a un Poa(001) y un cantidad.
Se divide en 12 meses que tiene el año asignando una cantidad a cada mes que seria de 1000
Estructura de mis Tablas
CREATE TABLE dbo.Presup(
Id_Año INT,
Poa_id INT NOT NULL,
Cansup FLOAT NOT NULL,
CONSTRAINT pk_Presup_Año_Poa_id PRIMARY KEY(Id_Año,Poa_id),
CONSTRAINT fk_Presup_Poa FOREIGN KEY(Poa_id)REFERENCES Poa(Id_poa)
);
--
CREATE TABLE dbo.Mespre(
Id_Mes INT IDENTITY(1,1),
Nommes VARCHAR(10) NOT NULL,
Canpre FLOAT NOT NULL,
Años_Id INT NOT NULL,
Id_Poa INT NOT NULL,
CONSTRAINT pk_Mes_Id PRIMARY KEY(Id_Mes),
CONSTRAINT fk_Presup_Mes FOREIGN KEY(Años_Id)REFERENCES Presup(Id_Año),
CONSTRAINT fk_Presup_Poa FOREIGN KEY(Id_Poa)REFERENCES Presup(Poa_id)
);
me manda este error
Mens. 1776, Nivel 16, Estado 0, Línea 1
No hay claves principales ni candidatas en la tabla a la que se hace referencia ('Presup') que concuerden con la lista de columnas que hace la referencia en la clave externa 'fk_Mes_Año'.
Mens. 1750, Nivel 16, Estado 0, Línea 1
No se pudo crear la restricción. Consulte los errores anteriores.
Ayuda!
Umm se supone que la tabla "Presup"[Presupuesto] tiene una llave que es el año y esta compuesta por una llave llamada "Poa_id" y a su vez tiene una cantidad X
Ejemplo
*Id_Año * Poa_id Cansup
2009 001 12000
2009 002 12000
*Llaves para formar la compuesta por puede aver varios 2009
La siguiente tabla "Mespre" corresponde meses en que se puede dividir todo el [Presup]presupuesto del año 2009 y del Poa_id 001.
La tabla "Mespre" esta formada por una llave autonumerica "Id_Mes" seguido del nombre del Mes "Nommes" y de una Canditad "Canpre" y sus llaves foraneas como Años_Id y Id_Poa las cuales corresponden de la tabla Presup
Ejemplo:
*Id_mes -- Nommes -- Campre --- **Años_Id -- **Id_Poa
1 Enero 1000 2009 001
2 Enero 1000 2009 002
*Llave primaria
**LLave foranea
Un presupuesto de un Año [2009] y que corresponde a un Poa(001) y un cantidad.
Se divide en 12 meses que tiene el año asignando una cantidad a cada mes que seria de 1000
Estructura de mis Tablas
CREATE TABLE dbo.Presup(
Id_Año INT,
Poa_id INT NOT NULL,
Cansup FLOAT NOT NULL,
CONSTRAINT pk_Presup_Año_Poa_id PRIMARY KEY(Id_Año,Poa_id),
CONSTRAINT fk_Presup_Poa FOREIGN KEY(Poa_id)REFERENCES Poa(Id_poa)
);
--
CREATE TABLE dbo.Mespre(
Id_Mes INT IDENTITY(1,1),
Nommes VARCHAR(10) NOT NULL,
Canpre FLOAT NOT NULL,
Años_Id INT NOT NULL,
Id_Poa INT NOT NULL,
CONSTRAINT pk_Mes_Id PRIMARY KEY(Id_Mes),
CONSTRAINT fk_Presup_Mes FOREIGN KEY(Años_Id)REFERENCES Presup(Id_Año),
CONSTRAINT fk_Presup_Poa FOREIGN KEY(Id_Poa)REFERENCES Presup(Poa_id)
);
me manda este error
Mens. 1776, Nivel 16, Estado 0, Línea 1
No hay claves principales ni candidatas en la tabla a la que se hace referencia ('Presup') que concuerden con la lista de columnas que hace la referencia en la clave externa 'fk_Mes_Año'.
Mens. 1750, Nivel 16, Estado 0, Línea 1
No se pudo crear la restricción. Consulte los errores anteriores.
Ayuda!
Valora esta pregunta


0