bro*_*oke 10 sql t-sql sql-server sql-server-2008
这对我来说太奇怪了:
delete from GearsDev.dbo.Products
from GearsDev.dbo.Products as C
inner join #Common as M
on M.item = C.ItemNumber
Run Code Online (Sandbox Code Playgroud)
#Common 是一个临时表,但其余部分对我没有意义.
你怎么能有两个from条款?
Ode*_*ded 13
从DELETE的文档中可以看出,它可能需要两个FROM子句.
第一个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
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2042 次 |
| 最近记录: |