簡體   English   中英

SQL Server - 使用子查詢更新乘法表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM