white_flag
Neuer Benutzer
- Beiträge
- 3
möchte beziehungen zwischen tabellen herstellen.
kriege wenn ich die anweisungen ausführe mal schon mal nicht die fehlermeldung angezeigt dass ein constraint nicht vorhanden ist, obwohl ich es definiert habe und die fehlermeldung auf eine zeile verweist die nach einer if-bediengung steht.
wenn ich alle anweisungen nach und nach in kommentare setze und die anweisungen nach jedem mal ausführen entkommentiere funktioniert das programm aber sobald ich eine neue anweisung hinzufüge funktioniert es wieder nicht und bekomme wieder die fehlermeldung angezeigt
meine anweisungen:
--constraint/einschränkungen löschen
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
ALTER TABLE ProduktZutat DROP CONSTRAINT [ProduktZutat_Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
ALTER TABLE ProduktZutat DROP CONSTRAINT [ProduktZutat_Zutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Preis]') AND type in (N'U'))
ALTER TABLE Preis DROP CONSTRAINT [Preis_Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt]') AND type in (N'U'))
ALTER TABLE Produkt DROP CONSTRAINT [Produkt_Zahlung]
--Tabellen löschen
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
DROP TABLE [ProduktZutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt]') AND type in (N'U'))
DROP TABLE [Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zutat]') AND type in (N'U'))
DROP TABLE [Zutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Preis]') AND type in (N'U'))
DROP TABLE [Preis]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zahlung]') AND type in (N'U'))
DROP TABLE [Zahlung]
--tabellen u beziehungen erstellen
CREATE TABLE [Zahlung]
(
ZahlungID INT PRIMARY KEY,
)
CREATE TABLE [Produkt]
(
ProduktID INT PRIMARY KEY ,
ZahlungID int Constraint Produkt_Zahlung Foreign key references Zahlung (ZahlungID) ,
)
CREATE TABLE [Zutat]
(
ZutatID INT PRIMARY KEY
)
CREATE TABLE [ProduktZutat] (
ID INT PRIMARY KEY,
ProduktID INT CONSTRAINT ProduktZutat_Produkt Foreign Key REFERENCES Produkt (ProduktID),
ZutatID INT CONSTRAINT ProduktZutat_Zutat Foreign Key REFERENCES Zutat(ZutatID)
)
CREATE TABLE [Preis]
(
PreisID INT PRIMARY KEY,
ProduktID Int CONSTRAINT Preis_Produkt Foreign Key REFERENCES Produkt(ProduktID)
)
kriege wenn ich die anweisungen ausführe mal schon mal nicht die fehlermeldung angezeigt dass ein constraint nicht vorhanden ist, obwohl ich es definiert habe und die fehlermeldung auf eine zeile verweist die nach einer if-bediengung steht.
wenn ich alle anweisungen nach und nach in kommentare setze und die anweisungen nach jedem mal ausführen entkommentiere funktioniert das programm aber sobald ich eine neue anweisung hinzufüge funktioniert es wieder nicht und bekomme wieder die fehlermeldung angezeigt
meine anweisungen:
--constraint/einschränkungen löschen
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
ALTER TABLE ProduktZutat DROP CONSTRAINT [ProduktZutat_Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
ALTER TABLE ProduktZutat DROP CONSTRAINT [ProduktZutat_Zutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Preis]') AND type in (N'U'))
ALTER TABLE Preis DROP CONSTRAINT [Preis_Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt]') AND type in (N'U'))
ALTER TABLE Produkt DROP CONSTRAINT [Produkt_Zahlung]
--Tabellen löschen
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ProduktZutat]') AND type in (N'U'))
DROP TABLE [ProduktZutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt]') AND type in (N'U'))
DROP TABLE [Produkt]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zutat]') AND type in (N'U'))
DROP TABLE [Zutat]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Preis]') AND type in (N'U'))
DROP TABLE [Preis]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zahlung]') AND type in (N'U'))
DROP TABLE [Zahlung]
--tabellen u beziehungen erstellen
CREATE TABLE [Zahlung]
(
ZahlungID INT PRIMARY KEY,
)
CREATE TABLE [Produkt]
(
ProduktID INT PRIMARY KEY ,
ZahlungID int Constraint Produkt_Zahlung Foreign key references Zahlung (ZahlungID) ,
)
CREATE TABLE [Zutat]
(
ZutatID INT PRIMARY KEY
)
CREATE TABLE [ProduktZutat] (
ID INT PRIMARY KEY,
ProduktID INT CONSTRAINT ProduktZutat_Produkt Foreign Key REFERENCES Produkt (ProduktID),
ZutatID INT CONSTRAINT ProduktZutat_Zutat Foreign Key REFERENCES Zutat(ZutatID)
)
CREATE TABLE [Preis]
(
PreisID INT PRIMARY KEY,
ProduktID Int CONSTRAINT Preis_Produkt Foreign Key REFERENCES Produkt(ProduktID)
)