Der folgende Code entfernt Datensätze von Tasks, die sich auf inaktive Projekte beziehen, aus der Tabelle.Verwenden von T-SQL EXCEPT mit DELETE/Optimieren einer Abfrage
delete from [Deliverables] where
[Deliverables].[ProjectID] not in
(
select
[ProjectID] from [ActiveProjects]
)
Ich habe das nicht wirklich die effizienteste, was zu tun und es ist besser, mit NOT IN
mit subquery irgendwo gelesen, dass viele Werte zurückgibt, ist EXCEPT
Klausel zu verwenden.
aber wenn ich versuche, den folgenden Code zu verwenden, erhalte ich einen Fehler (falsche Syntax nahe dem Schlüsselwort ‚außer‘.)
delete from [Deliverables]
except
select * from [Deliverables], [ActiveProjects]
where [Deliverables].[ProjectID] = [ActiveProjects].[ProjectID]
Wie kann ich EXCEPT
mit DELETE
verwenden? Wenn ich nicht kann, gibt es eine Möglichkeit, meine Abfrage zu optimieren, um schneller auszuführen?
diese Lösung funktionierte für mich, war es deutlich schneller als die Verwendung der NOT IN-Klausel. Vielen Dank! – rufus1530
@ rufus1530, Sie sind herzlich willkommen! – PawelCz