![]()  | 
    ![]()  | 
    |
		
			
  | 
	|||||||
| Programmierung Rat & Tat für Programmierer | 
![]()  | 
	
	
| 
		 | 
	Themen-Optionen | Ansicht | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Elite 
			![]() Registriert seit: 14.11.1999 
				
				Alter: 40 
				
					Beiträge: 1.429
				 
				
				
				
 | 
	
	
	
		
		
			
			 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 ); 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.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			
			
			 Master 
			![]() Registriert seit: 13.08.2003 
				
				
				
					Beiträge: 624
				 
				
				
				
 | 
	
	
	
		
		
			
			 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 ![]()  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Elite 
			![]() Registriert seit: 14.11.1999 
				
				Alter: 40 
				
					Beiträge: 1.429
				 
				
				
				
 | 
	
	
	
		
		
			
			 wie kann ich die referenzen dann erstellen? 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
	sie müssen ja da sein   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?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			
			
			 Master 
			![]() Registriert seit: 13.08.2003 
				
				
				
					Beiträge: 624
				 
				
				
				
 | 
	
	
	
		
		
			
			 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  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
		
  | 
	
		
  |