Einzelnen Beitrag anzeigen
Alt 17.11.2004, 10:50   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard [MS SQL Server] Datenbanken und Tabellen anlegen

Habe folgende Aufgabenstellung:
2 Tabellen anlegen, Angestellte und Abteilung;
Beziehungen dazwischen:
Ein Angestellter muss zu einer Abteilung gehören, eine Abteilung hat n Angestellte --> ergo kann ich bei Angestellte ein Feld Abteilung als Fremdkey machen
Eine Abteilung wird genau von einem Angestelltem geleitet, ein Angesteller kann eine oder keine Abteilung leiten --> ergo mache ich bei Abteilung ein Feld Abteilungsvorstand

Soweit die Theorie, nur bei dem praktischen SQL-Code (ich muss über sql database, tabellen usw. anlegen) geht zwar mit dem sql query analyzer, aber ich kriege bei der ausführung einen runtimeerror.
außerdem legt er mir die db nur an, sofern nach dem anlegebefehl nachher keine zeilen mehr kommen :/

Code:
CREATE DATABASE [h03-10-sqluebung]  ON (NAME = N'h03-10-sqluebung_Data', FILENAME = N'C:\Programme\Microsoft SQL Server\MSSQL\data\h03-10-sqluebung_Data.MDF' , SIZE = 4, FILEGROWTH = 10%) LOG ON (NAME = N'h03-10-sqluebung_Log', FILENAME = N'C:\Programme\Microsoft SQL Server\MSSQL\data\h03-10-sqluebung_Log.LDF' , SIZE = 2, FILEGROWTH = 10%);


CREATE TABLE [h03-10-sqluebung].dbo.Abt(
	Abtid UNIQUEIDENTIFIER,
	CONSTRAINT Abtid PRIMARY KEY(Abtid),
	Abtname CHAR(50) NOT NULL,
	Abtvstd INTEGER NOT NULL,
	CONSTRAINT Abtvstd FOREIGN KEY (Angid) REFERENCES [h3-10-sqluebung].dbo.Ang(Angid)
);

CREATE TABLE [h03-10-sqluebung].dbo.Ang(
	Angid UNIQUEIDENTIFIER,
	CONSTRAINT Angid PRIMARY KEY(Angid),
	Angname CHAR(50) NOT NULL,
	FOREIGN KEY (Abtid) REFERENCES [h03-10-sqluebung].dbo.Abt
);
Fehlermeldung:
Code:
Server: Nachr.-Nr. 1769, Schweregrad 16, Status 1, Zeile 4
Der Abtvstd-Fremdschlüssel verweist auf die ungültige Angid-Spalte in der verweisenden Abt-Tabelle.
Server: Nachr.-Nr. 1750, Schweregrad 16, Status 1, Zeile 4
Einschränkung konnte nicht erstellt werden. Siehe vorherige Fehler.
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten