Ich muss eine SQL-Anweisung erstellen, um aus bestimmten Tabellen die Datensätze zu löschen, die eine andere SELECT-Anweisung entsprechen.Sql Server DELETE und WITH-Klausel
In Teradata verwenden wir
delete from table1
where (col1, col2) in (
select col1,col2
from table2
)
Während in SQL Server es nicht erlaubt ist, mehr als 1 Spalte in der WHERE..IN Klausel zu haben. Ich dachte, ich kann die WITH-Klausel verwenden:
with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2
Wie WITH..DELETE-Klausel verwenden? Gibt es eine andere Art und Weise?
... Sie die verwenden könnte WITH-Klausel, aber dieser Weg ist einfacher. –
danke es hat funktioniert! aber wie benutzt man WITH..DELETE? – ala
Wenn ich darüber nachdenke, sehe ich keinen Grund, die WITH-Klausel zu verwenden. Ich benutze WITH, wenn die Dinge ernsthaft chaotisch oder komplex werden, und das Löschen von einer Tabelle basierend auf einer einfachen Verknüpfung mit einer anderen Tabelle ist nicht komplex genug, um den zusätzlichen Programmieraufwand zu rechtfertigen. –