这对我来说看起来很奇怪:
delete from GearsDev.dbo.Products
from GearsDev.dbo.Products as C
inner join #Common as M
on M.item = C.ItemNumber
#Common
是一个临时表,但其余部分对我来说毫无意义。
你怎么可以有两个from
条款?
从文档中可以看出DELETE,可能需要两个FROM
条款。
首先FROM
:
从:
是可选关键字,可在 DELETE 关键字和目标 table_or_view_name 或 rowset_function_limited 之间使用。
第二FROM
:
FROM <table_source>
:
指定附加的 FROM 子句。 DELETE 的此 Transact-SQL 扩展允许在第一个 FROM 子句中指定数据并删除表中的相应行。
这个指定连接的扩展可以用来代替 WHERE 子句中的子查询来标识要删除的行。
因此,SQL将从中删除记录Products
与连接时具有匹配项的表#common
.
这相当于(在意义上)以下查询:
delete from [GearsDev].[dbo].[Products]
where ItemNumber in
(
select item from #common
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)