小编the*_*ote的帖子

SQL Server:使用MERGE语句更新两个表

我正在尝试使用一个MERGE语句来使用单个源 (CTE) 更新 2 个表。当我只使用 1 个合并时它有效,但是当我添加第二个时,它返回一个错误:

消息 208,级别 16,状态 1,过程 mn_SeoUrl_UpdateBulk,第 46 行
无效的对象名称“ cte ”。

是否可以通过合并更新 2 个表?如果可能的话,我做错了,我希望有人可以告诉我这样做的正确方法是什么。

任何帮助深表感谢。

谢谢你。

这是我的失败代码(错误的列名):

WITH cte AS 
( 
    SELECT
        [u].[col1], [u].[col2], [u].[col3], 
        CASE                                        
           WHEN [u].[col1] LIKE 'L%' 
              THEN 'c/' + [u].[col2] + '/' + [u].[col3]
           WHEN [u].[col1] LIKE 'M%' 
              THEN 'm/' + [u].[col2] + '/' + [u].[col3]
        END [col4]
    FROM
        (SELECT
             [st1].[col1], [st1].[col2], [st1].[col3]
         FROM
             [dbo].[sourcetable1] [st1]
         INNER JOIN 
             [dbo].[sourcetable2] [st2] ON [st1].[ID] = [st2].[ID]
         WHERE
             [pd].[col2] <> 0) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server merge stored-procedures

2
推荐指数
1
解决办法
3268
查看次数

标签 统计

merge ×1

sql-server ×1

stored-procedures ×1

t-sql ×1