Create Statements / Constraints

Wenn ich einen foreign key definiere (bzw. die Beziehung), welchen Befehl muss ich eingeben damit die Beziehung abhängig / unabhängig ist und referentielle unterstützung hat?

ich hab bis jetzt:

ALTER TABLE Person
ADD FOREIGN KEY (p_o_plz)
REFERENCES Ort
;

Hallo Philipp

Ich kenn jetzt den Access SQL-Umfang nicht genau, aber bei MS-SQL gibt es noch das Statement „ON UPDATE CASCADE | NO ACTION“ resp. „ON DELETE CASCADE | NO ACTION“ welche das Verhalten beim Ändern/Löschen des Primary-Keys definieren.
z.B.

ALTER TABLE tblXY ADD 
 CONSTRAINT fieldFK FOREIGN KEY 
 (
 nameOfFK
 ) REFERENCES tblABC (
 fieldPK
 ) ON UPDATE CASCADE ON DELETE NO ACTION

Vielleicht hilft dir das weiter

Gruss: Christian

Ein weiteres Problem:
Danke dir!
Nur hab ich jetzt wiedermal folgende Frage: Ich habe jetzt die ganzen Creates inkl. definitionen der Primary Keys und die Alter Tables für die Foreign Keys.

Das sind ca. 40 sql statements… wie kann ich das alles in ein statement verpacken bzw. muss man das mit vba lösen? wenn ja wie??

danke!!

Philipp

Holla.

Das sind ca. 40 sql statements… wie kann ich das alles in
ein statement verpacken bzw. muss man das mit vba lösen? wenn
ja wie??

Ich habe für solche Zwecke eine Tabelle, die ein Memofeld aufweist, in das die Statements geschroben werden. Dann kannst Du eine Prozedur stricken, die die Statements sequentiell abarbeitet :

Public Sub KnallBummZisch()
Dim SQLStatement as String
Dim EingabeTabelle as DAO.Recordset
Set EingabeTabelle=CurrentDB.OpenRecordset("Tabellenname",dbOpenDynaset)
With EingabeTabelle
 While Not .EOF
 SQLStatement=!dasMemofeldAusDerTabelle
 CurrentDB.Execute SQLStatement
 .MoveNext
 Wend
 .Close
End With
Set EingabeTabelle=Nothing
End Sub

Das liest die Tabelle satzweise und führt die SQL-Statements hintereinander aus. Auf einmal geht’s eh nicht … Denk dran, den Verweis auf DAO 3.6 zu setzen , sonst tut’s nicht.

Gruß kw

Danke, du hast mir sehr geholfen!

Meine Lösung wäre ein Makro gewesen, welche die Datenbank von der Größe gleich verdoppelt hätte : ) ABer das is ne elegantere und bessere Lösung, danke!