Hallo zusammen
Ich hoffe ihr könnt mir helfen.
Ich muss für die Schule ein Projekt machen. Die Aufgabe ist, mit einem SQL - Trainer (von unserem Lehrer in c# programmiert) eine datenbank im .mdb - Format zu erstellen, mit SQL - Batchdateien Tabellen zu erstellen, mit SQL - Batch die Tabellen mit Testdaten füllen sowie mit SQL - Batch Beziehungen zu erstellen.
Zudem muss ein Frontend in c# programmiert werden, das Daten aus der DB auslesen kann.
Soweit kein Problem. Mit dem Trainer kann man eine neue . mdb Datei anlegen, und den Batchcode eingeben, der dann ausgeführt wird.
Ich erstellte eine neue .mdb und kreierte mit dem CREATE TABLE xxx befehl 4 Tabellen.
Die Beziehungen machte ich direkt im CREATE mit PRIMARY KEY (xxx_ID) sowie FOREIGN KEY (xxx_ID_FK) REFERENCES TABLE (xxx_ID) usw usw..
Auch das Einfüllen von Testdaten mit dem INSERT funktioniert wunderbar.
Am Ende hatte ich eine komplette .mdb Datei mit Tabellen, beziehungen und Testdaten, die ich (auch im Trainer enthalten) mit dem SELECT - Befehl auslesen konnte.
Nun Beinhaltet die Projektaufgabe aber auch, dass ich mittels DROP die Tabellen löschen kann.
Normalerweise kein Problem: DROP TABLE xxx; und schon ist es geschehen.
Nun:
Gibt mir der Trainer die Fehlermeldung, dass die Tabellen nicht gelöscht werden können, da sie in einer Beziehung sind.
Da habe ich gedacht kein Problem, die Bezihungen kann ich mittels ALTER TABLE xxx DROP CONSTRAINT xxx; löschen.
Nun stellt sich jedoch heraus, dass für die Bezihungen von dem SQL Trainer (der Intern die MS Access Engine braucht) zufällige Namen verwendet. z.b. Rel_8567EA06_8846_4D87.
Da ich aber für das Löschen den Namen wissen muss und er bei jedem Erstellen der Tabellen und Beziehungen anders ist, kann ich dies nicht in einem Batchscript festhalten.
nun meine Frage:
Wie kann ich die Beziehungen mit dem CONSTRAINT - Befehl erstellen und dabei einen mir geläufigen namen geben, damit ich mit DROP CONSTRAINT die Beziehung wider löschen kann?
Kurz gesagt muss ich folgendes können:
Mit SQL - Batch Tabellen erstellen
Mit SQL - Batch Beziehungen erstellen
Mit SQL - Batch Testdaten einfüllen
Mit SQL - Batch die Tabellen wider löschen.
Das Ganze muss ich dann vor der Klasse/Lehrer vorführen, also nixx mit vorher editieren!
Auf Wunsch kann ich auch den Code der SQL - Batchdateien hier posten.
Vielen Dank im Voraus
Gruss
Atreju
Ich hoffe ihr könnt mir helfen.
Ich muss für die Schule ein Projekt machen. Die Aufgabe ist, mit einem SQL - Trainer (von unserem Lehrer in c# programmiert) eine datenbank im .mdb - Format zu erstellen, mit SQL - Batchdateien Tabellen zu erstellen, mit SQL - Batch die Tabellen mit Testdaten füllen sowie mit SQL - Batch Beziehungen zu erstellen.
Zudem muss ein Frontend in c# programmiert werden, das Daten aus der DB auslesen kann.
Soweit kein Problem. Mit dem Trainer kann man eine neue . mdb Datei anlegen, und den Batchcode eingeben, der dann ausgeführt wird.
Ich erstellte eine neue .mdb und kreierte mit dem CREATE TABLE xxx befehl 4 Tabellen.
Die Beziehungen machte ich direkt im CREATE mit PRIMARY KEY (xxx_ID) sowie FOREIGN KEY (xxx_ID_FK) REFERENCES TABLE (xxx_ID) usw usw..
Auch das Einfüllen von Testdaten mit dem INSERT funktioniert wunderbar.
Am Ende hatte ich eine komplette .mdb Datei mit Tabellen, beziehungen und Testdaten, die ich (auch im Trainer enthalten) mit dem SELECT - Befehl auslesen konnte.
Nun Beinhaltet die Projektaufgabe aber auch, dass ich mittels DROP die Tabellen löschen kann.
Normalerweise kein Problem: DROP TABLE xxx; und schon ist es geschehen.
Nun:
Gibt mir der Trainer die Fehlermeldung, dass die Tabellen nicht gelöscht werden können, da sie in einer Beziehung sind.
Da habe ich gedacht kein Problem, die Bezihungen kann ich mittels ALTER TABLE xxx DROP CONSTRAINT xxx; löschen.
Nun stellt sich jedoch heraus, dass für die Bezihungen von dem SQL Trainer (der Intern die MS Access Engine braucht) zufällige Namen verwendet. z.b. Rel_8567EA06_8846_4D87.
Da ich aber für das Löschen den Namen wissen muss und er bei jedem Erstellen der Tabellen und Beziehungen anders ist, kann ich dies nicht in einem Batchscript festhalten.
nun meine Frage:
Wie kann ich die Beziehungen mit dem CONSTRAINT - Befehl erstellen und dabei einen mir geläufigen namen geben, damit ich mit DROP CONSTRAINT die Beziehung wider löschen kann?
Kurz gesagt muss ich folgendes können:
Mit SQL - Batch Tabellen erstellen
Mit SQL - Batch Beziehungen erstellen
Mit SQL - Batch Testdaten einfüllen
Mit SQL - Batch die Tabellen wider löschen.
Das Ganze muss ich dann vor der Klasse/Lehrer vorführen, also nixx mit vorher editieren!
Auf Wunsch kann ich auch den Code der SQL - Batchdateien hier posten.
Vielen Dank im Voraus
Gruss
Atreju