Necesito construir una declaración de SQL para eliminar de cierta tabla los registros que coinciden con otra instrucción de selección.Sql server DELETE and WITH cláusula
En Teradata utilizamos
delete from table1
where (col1, col2) in (
select col1,col2
from table2
)
Mientras que en SQL Server no se les permite tener más de 1 columna en la cláusula WHERE..IN. Pensé que puedo utilizar la cláusula WITH:
with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2
Cómo utilizar la cláusula WITH..DELETE? ¿Hay otra manera?
... usted podría utilizar el CON cláusula, pero de esta manera es más simple. –
gracias, funcionó! pero cómo usar WITH..DELETE? – ala
Pensando en ello, no veo ninguna razón para usar la cláusula WITH. Uso CON cuando las cosas se ponen muy complicadas o complejas, y eliminar de una tabla basada en una simple unión a otra tabla no es lo suficientemente complejo como para justificar el esfuerzo adicional de codificación. –