
111945
29.05.2013
MS SQL verknüpfte Abfrage DELETE Befehl
Hallo, habe folgende Abfrage deren Inhalte ich löschen möche.
SELECT *
FROM dbo.FaxJobs a, dbo.FaxAttachments b
Where a.JobID = b.JobID and a.CreationDate <= CONVERT(datetime, '01.01.2013 00:00:00', 104)
order by a.CreationDate
versucht habe ich es mit
DELETE
FROM dbo.FaxJobs a, dbo.FaxAttachments b
Where a.JobID = b.JobID and a.CreationDate <= CONVERT(datetime, '01.01.2013 00:00:00', 104)
order by a.CreationDate
wobei mir immer folgender Fehler ausgeworfen wird :
Meldung 102, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe von 'a'.
Ich glaube ich schaue schon zulange drauf um den Fehler zu finden, vieleicht könnt ihr helfen.
VIelen Dank
Stefan
SELECT *
FROM dbo.FaxJobs a, dbo.FaxAttachments b
Where a.JobID = b.JobID and a.CreationDate <= CONVERT(datetime, '01.01.2013 00:00:00', 104)
order by a.CreationDate
versucht habe ich es mit
DELETE
FROM dbo.FaxJobs a, dbo.FaxAttachments b
Where a.JobID = b.JobID and a.CreationDate <= CONVERT(datetime, '01.01.2013 00:00:00', 104)
order by a.CreationDate
wobei mir immer folgender Fehler ausgeworfen wird :
Meldung 102, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe von 'a'.
Ich glaube ich schaue schon zulange drauf um den Fehler zu finden, vieleicht könnt ihr helfen.
VIelen Dank
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207205
Url: https://administrator.de/forum/ms-sql-verknuepfte-abfrage-delete-befehl-207205.html
Ausgedruckt am: 21.04.2025 um 08:04 Uhr
4 Kommentare
Neuester Kommentar
Moin StfnCstr,
willkommen im Forum.
a) bei einem DELETE-Statement ist ein ORDER BY weder unterstützt noch sinnvoll.
b) du kannst nicht in zwei Tabellen "parallel" löschen - du musst dich für eine Tabelle entscheiden.
Wenn ich es inhaltlich richtig verstehe, sollen alle "älteren" Datensätze gelöscht werden, die in Alias a und b existieren (a und b über JobID verknüpft) und das "älter" wird ermittelt aus a.CreationDate.
Also musst du zuerst die aus Alias b (den FaxAttachments) löschen mit
und im 2. Schritt die Sätze aus FaxJobs mit CreationDate > DatumX;
Grüße
Biber
willkommen im Forum.
a) bei einem DELETE-Statement ist ein ORDER BY weder unterstützt noch sinnvoll.
b) du kannst nicht in zwei Tabellen "parallel" löschen - du musst dich für eine Tabelle entscheiden.
Wenn ich es inhaltlich richtig verstehe, sollen alle "älteren" Datensätze gelöscht werden, die in Alias a und b existieren (a und b über JobID verknüpft) und das "älter" wird ermittelt aus a.CreationDate.
Also musst du zuerst die aus Alias b (den FaxAttachments) löschen mit
DELETE FROM Dbo.FaxAttachments
where JOBID in
( Select a.JobID
FROM dbo.FaxJobs a, dbo.FaxAttachments b
Where a.JobID = b.JobID and a.CreationDate <= CONVERT(datetime, '01.01.2013 00:00:00', 104)
);
und im 2. Schritt die Sätze aus FaxJobs mit CreationDate > DatumX;
Grüße
Biber
Moin StfnCstr,
Ähhm ja - allerdings kann/soll das bei uns der Beitragsersteller selbsttätig machen.
Wenn du eingeloggt bist, dann siehst du bei DEINEM Beitrag auch einen Button "Frage als gelöst markieren". mit einem WG-Mortadellafarbenen Häkchen.
Danke aber für die Rückmeldung.
Grüße
Biber
Zitat von @111945:
PS: Ticket kann als erledigt markiert werden.
PS: Ticket kann als erledigt markiert werden.
Ähhm ja - allerdings kann/soll das bei uns der Beitragsersteller selbsttätig machen.
Wenn du eingeloggt bist, dann siehst du bei DEINEM Beitrag auch einen Button "Frage als gelöst markieren". mit einem WG-Mortadellafarbenen Häkchen.
Danke aber für die Rückmeldung.
Grüße
Biber