sql-server-2005 - tablas - llave primaria y foranea sql
RelaciĆ³n de clave externa con claves primarias compuestas en SQL Server 2005 (2)
Como Table2 tiene una clave principal compuesta (FileID, FileType)
, cualquier referencia a ella también debe incluir ambas columnas .
ALTER TABLE dbo.Table1
ADD CONSTRAINT FK_Table1_Table2
FOREIGN KEY(FileID, FileType) REFERENCES Table2(FileID, FileType)
A menos que tenga una restricción / índice único en el campo Table2.FileID
(pero, en caso afirmativo, ¿por qué no es esto el PK?), No puede crear una relación FK para solo partes del PK en la tabla de destino, simplemente puede '' t hacerlo
Tengo dos mesas
Table1(
FileID,
BundledFileID,
Domain)
y
Table2(
FileID,
FileType,
FileName)
En FileID
y FileType
son la clave principal compuesta. Quiero crear una relación de clave externa desde Table1.FileID
a Table1.FileID
.
¿Es posible hacer esto?
Marc ya ha dado una respuesta bastante buena. Si las filas en la Tabla1 solo se relacionan con un tipo de archivo (por ejemplo, FileType ''ABC''), puede agregar FileType a Table1 como una columna calculada:
ALTER TABLE Table1 ADD FileType as ''ABC''
Que luego puede utilizar en la clave externa.