1 Fremdschlüssel auf mehrere Felder in einer Tabelle?

17/06/2009 - 14:04 von Uwe | Report spam
Hallo,

eine Frage zu Fremdschlüsseln.
Ist es möglich 1 Fremdschlüssel auf mehrere Felder in einer Tabelle zu
referenzieren?
Zum Beispiel: Tabelle Status Feld StatusID auf Tabelle StatusMeldungen Feld
Status 1, auf Tabelle StatusMeldungen Feld Status 2
und auf auf Tabelle StatusMeldungen Feld Status 3.
Habe zu solch einem Konstrukt leider nichts gefunden.

Gruß
Uwe
 

Lesen sie die antworten

#1 Christoph Muthmann
17/06/2009 - 14:38 | Warnen spam
Uwe wrote:
Hallo,

eine Frage zu Fremdschlüsseln.
Ist es möglich 1 Fremdschlüssel auf mehrere Felder in einer Tabelle zu
referenzieren?
Zum Beispiel: Tabelle Status Feld StatusID auf Tabelle
StatusMeldungen Feld Status 1, auf Tabelle StatusMeldungen Feld
Status 2 und auf auf Tabelle StatusMeldungen Feld Status 3.
Habe zu solch einem Konstrukt leider nichts gefunden.



Hallo Uwe,
meinst Du so etwas?

CREATE TABLE Status
( Status_ID char(18) NOT NULL )
go

ALTER TABLE Status
ADD CONSTRAINT XPKStatus PRIMARY KEY CLUSTERED (Status_ID ASC)
go

CREATE TABLE StatusMeldungen
(
StatusMeldungen_ID char(18) NOT NULL ,
Status1 char(18) NULL ,
Status2 char(18) NULL ,
Status3 char(18) NULL
)
go

ALTER TABLE StatusMeldungen
ADD CONSTRAINT XPKStatusMeldungen PRIMARY KEY CLUSTERED
(StatusMeldungen_ID ASC)
go

ALTER TABLE StatusMeldungen
ADD CONSTRAINT R_1 FOREIGN KEY (Status1) REFERENCES Status(Status_ID)
go

ALTER TABLE StatusMeldungen
ADD CONSTRAINT R_2 FOREIGN KEY (Status2) REFERENCES Status(Status_ID)
go

ALTER TABLE StatusMeldungen
ADD CONSTRAINT R_3 FOREIGN KEY (Status3) REFERENCES Status(Status_ID)
go




Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen