[英]USING Common Table Expression and perform multiple update commands
是否可以让 CTE 执行多个更新命令?
With Query AS
(
SELECT
Table_One.FOO AS FOO,
Table_Two.BAR AS BAR
FROM FOO
JOIN BAR ON FOO.ID = BAR.ID
)
UPDATE
Query.FOO = 1;
UPDATE
Query.BAR = 2;
在示例中 Query 在第二个 UPDATE 命令中不再可用。
编辑:
我的工作代码如下所示:
With Query AS
(
SELECT
Table_One.FOO AS FOO,
Table_Two.BAR AS BAR
FROM FOO
JOIN BAR ON FOO.ID = BAR.ID
)
UPDATE
Query.FOO = 1
With Query AS
(
SELECT
Table_One.FOO AS FOO,
Table_Two.BAR AS BAR
FROM FOO
JOIN BAR ON FOO.ID = BAR.ID
)
UPDATE
Query.BAR = 2;
因为你不能用一个 UPDATE 命令更新两个表,所以我需要两个更新命令。 正确知道的问题是,如果我需要更改 CTE 中的 Select,我必须在代码中的两个位置进行更改。
您可以将CTE
结果插入@Table
变量并在代码块中需要的任何位置使用此表。 (您可以join
这个表与实际的表执行UPDATE/INSERT/DELETE
等)。 您不能在多个语句中使用相同的 CTE,因为 CTE 只是后续语句的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.