[英]SQL Server - update multiply tables with sub queries
我嘗試根據我擁有的另一個子查詢更新幾個表。 什么是語法?
我試過:
;with sub_query as (....)
update T
set X = Y
from table1 T
inner join sub_query on ...
update T
set X = Y
from table2 T
inner join sub_query on ...
但我在更新table2
查詢中遇到錯誤:
無效的對象名稱“sub_query”。
更新第二個查詢的語法應該是什么? 我不想再次編寫sub_query
,因為它是一個非常復雜的查詢。
謝謝!
CTE table
創建后只使用一次! 您可以使用表變量或臨時表代替它。 像這樣:
CREATE @sub_query (...)
INSERT INTO sub_query ....
UPDATE ...
使用視圖:
CREATE VIEW view_sub_query .....
UPDATE T SET X=Y FROM table1 T INNER JOIN view_sub_query ON ...
UPDATE T SET X=Y FROM table2 T INNER JOIN view_sub_query ON ...
如果必須在很多地方使用它,請使用表函數:
CREATE FUNCTION fun_sub_query .....
UPDATE T SET X=Y FROM table1 T INNER JOIN fun_sub_query ON ...
UPDATE T SET X=Y FROM table2 T INNER JOIN fun_sub_query ON ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.