Ho bisogno di creare un'istruzione SQL per eliminare da una determinata tabella i record che corrispondono ad un'altra istruzione select.Sql server DELETE e clausola WITH
In Teradata usiamo
delete from table1
where (col1, col2) in (
select col1,col2
from table2
)
Mentre in SQL Server non è permesso avere più di 1 colonna nella clausola WHERE..IN. Ho pensato di poter usare la clausola WITH:
with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2
Come utilizzare la clausola WITH..DELETE? C'è un altro modo?
... si potrebbe utilizzare il CON clausola, ma in questo modo è più semplice. –
grazie ha funzionato! ma come usare WITH..DELETE? – ala
Pensandoci, non vedo alcun motivo per usare la clausola WITH. Uso WITH quando le cose diventano seriamente complicate o complesse e l'eliminazione da una tabella basata su un join semplice su un'altra tabella non è abbastanza complessa da giustificare lo sforzo di codifica aggiuntivo. –