Je dois créer une instruction SQL pour supprimer de certaines tables les enregistrements qui correspondent à une autre instruction select.Sql server DELETE et WITH clause
Dans Teradata nous utilisons
delete from table1
where (col1, col2) in (
select col1,col2
from table2
)
Alors que dans SQL Server, il est pas permis d'avoir plus de 1 colonne dans la clause WHERE..IN. Je pensais pouvoir utiliser la clause WITH:
with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2
Comment utiliser la clause WITH..DELETE? Y a-t-il un autre moyen?
... vous pouvez utiliser la Clause WITH, mais de cette façon est plus simple. –
merci cela a fonctionné! mais comment utiliser WITH..DELETE? – ala
En y réfléchissant, je ne vois aucune raison d'utiliser la clause WITH. J'utilise WITH lorsque les choses deviennent vraiment compliquées ou complexes, et la suppression d'une table basée sur une simple jointure à une autre table n'est pas assez complexe pour justifier l'effort de codage supplémentaire. –