sql-server – Sql server DELETE和WITH子句

前端之家收集整理的这篇文章主要介绍了sql-server – Sql server DELETE和WITH子句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要构建一个sql语句来从某个表中删除与另一个select语句匹配的记录.

在Teradata我们使用

delete from table1 
where (col1,col2) in (
  select col1,col2
  from table2
)

sql Server中,不允许在WHERE..IN子句中包含多于一列的列.我以为我可以使用WITH子句:

with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2

如何使用WITH..DELETE子句?还有另一种方式吗?

解决方法

这应该这样做:
DELETE Table1
 from Table1 t1
  inner join tempTable t2
   on t2.Col1 = t1.Col1
    and t2.Col2 = t1.Col2
原文链接:https://www.f2er.com/mssql/78370.html

猜你在找的MsSQL相关文章