![]() |
[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%); Code:
Server: Nachr.-Nr. 1769, Schweregrad 16, Status 1, Zeile 4 |
Bin mir zwar ned ganz sicher, glaube aber das es an der zeile
CONSTRAINT Abtvstd FOREIGN KEY (Angid) REFERENCES [h3-10-sqluebung].dbo.Ang(Angid) scheitert, da er nicht auf eine Tabelle referenzieren kann, die es noch nicht gibt (afaik). Versuch einfach mal die Tabellen ohne references und wenn das nix nutzt ohne keys zu erstellen, dann kannst vielleicht den fehler ein wenig eingrenzen. mfg Thomas :) |
wie kann ich die referenzen dann erstellen?
sie müssen ja da sein :mad: aja, und wie kann ich (für ein anderes beispiel dann) eine angestellter-(0,1)-betreut-(1,3)-projekt beziehung realisieren? (ok, mit einer zwischentabelle, aber wie? |
es sollte eigentlich möglich sein, die referezen im nachhinein über alter table-xyz zu ändern, frag mich aber nicht nach der syntax, hab das über sql am ms server nie gemacht, frag am besten mal google oder msdn
du kannst dir aber auch im enterprise manager vom sql-server ein diagramm deiner db erstellen lassen und dann dort die beziehungen herstellen. ad zwischentabelle mach einfach eine tabelle wo die angestellen_id und die projekt_id drinnsteht schon hast du eine zwischentabelle. brauchst dann nurmehr die werte eintragen (lassen) zb ang_id 1, proj_id 1 ang_id 1, proj_id 2 ang_id 1, proj_id 3 ang_id 2, proj_id 2 ang_id 3, proj_id 1 etc. mfg Thomas |
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag