Jump to content

Daten in mehreren Tabellen löschen


Direkt zur Lösung Gelöst von MDD,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo, 

 

ich brauche Hilfe bei einem Script das in der Tabelle A alle Datensätze löscht bei dem das bisdatum <= Heute ist.

Allerdings sollen vorher noch alle über die in Tabelle A "ID" verknüpften Datensätze in der Tabelle B (ID) und Tabelle C (AusweisNr) gelöscht werden. 

 

Ein Beispiel: 

Tabelle A: 

bisdatum: 2019-06-20 00:00:00.000 

ID: 15359

 

Tabelle B: 

ID = 15359

 

Tabelle C: 

AusweisNr. = 15359

 

Am Ende sollen alle 3 Datensätze in den Tabellen A, B und C gelöscht sein. 

 

Kann mir hier bitte jemand behilflich sein? SQL ist leider nicht meine Stärke :-( 

 

Viele Grüße

Daniel

 

Link zu diesem Kommentar
  • Beste Lösung

Hallo

DELETE * FROM TabelleB where ID in (SELECT ID FROM TabelleA where bisdatum < CAST(GETDATE() as Date))
DELETE * FROM TabelleC where AusweisNr in (SELECT ID FROM TabelleA where bisdatum < CAST(GETDATE() as Date))
DELETE * FROM TabelleA where bisdatum < CAST(GETDATE() as Date)

Damit sollte zuerst aus den "Untertabellen" die Datensätze rausgeschmissen werden die älter sind als der aktuelle Tag sind und zuletzt die Tabelle A selbst bereinigen werden.

Bei Bedarf kann man das Ergebnis der Unterabfrage von Tabelle A auch temporär zwischenspeichern und damit nur 1x abfragen. 

 

Zuerst Daten sichern dann probieren ;)

 

Gruß MDD

 

--- 

Klammer entfernt

Link zu diesem Kommentar
vor 3 Stunden schrieb MDD:

DELETE * FROM TabelleB where ID in (SELECT ID FROM TabelleA where bisdatum < CAST(GETDATE() as Date))

DELETE * FROM TabelleC where AusweisNr in (SELECT ID FROM TabelleA where bisdatum < CAST(GETDATE() as Date))

DELETE * FROM TabelleA where bisdatum < CAST(GETDATE() as Date))

Funktioniert, wenn man in der letzten Zeile eine ")" entfernt. 

 

Vielen Dank für die schnelle Hilfe

Viele Grüße

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...