首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MERGE语句产生多个"Invalid column name“

MERGE语句产生多个"Invalid column name“
EN

Stack Overflow用户
提问于 2021-02-10 02:01:06
回答 1查看 69关注 0票数 0

我尝试在以下过程中使用MERGE语句:

代码语言:javascript
复制
BEGIN

    MERGE INTO dm_udm.D_ANOMALY_TYPES_CATEGORY AS DIM
    USING (SELECT ID AS ID_ANOMALY_TYPES_CATEGORY
            ,AnomalyType
            ,AnomalyCategoryID
            ,AnomalyTypeDesc
        FROM src_udm.AnomalyTypesCategory
    )AS STG (
             ID_ANOMALY_TYPES_CATEGORY
            ,DES_ANOMALY_TYPE
            ,ID_ANOMALY_CATEGORY
            ,DES_ANOMALY_TYPE_DESC
            )
    ON DIM.ID_ANOMALY_TYPES_CATEGORY=STG.ID_ANOMALY_TYPES_CATEGORY
    WHEN MATCHED
        THEN UPDATE SET                     
        DIM.ID_ANOMALY_TYPES_CATEGORY           =   STG.ID_ANOMALY_TYPES_CATEGORY
        ,DIM.DES_ANOMALY_TYPE                   =   STG.AnomalyType
        ,DIM.ID_ANOMALY_CATEGORY                =   STG.AnomalyCategoryID
        ,DIM.DES_ANOMALY_TYPE_DESC              =   STG.AnomalyTypeDesc
    WHEN NOT MATCHED BY TARGET
    THEN INSERT
        (
            ID_ANOMALY_TYPES_CATEGORY   
            ,DES_ANOMALY_TYPE           
            ,ID_ANOMALY_CATEGORY            
            ,DES_ANOMALY_TYPE_DESC      
        )
    VALUES
        (
            STG.ID_ANOMALY_TYPES_CATEGORY
            ,STG.AnomalyType
            ,STG.AnomalyCategoryID
            ,STG.AnomalyTypeDesc
        );
END

但我在过程执行后收到以下错误:

代码语言:javascript
复制
Invalid column name 'AnomalyCategoryID'.
Invalid column name 'AnomalyCategoryID'.
Invalid column name 'AnomalyTypeDesc'.
Invalid column name 'AnomalyTypeDesc'.
Invalid column name 'AnomalyType'.
Invalid column name 'AnomalyType'.

似乎所有的别名都是正确的,我不明白为什么我会得到这个错误。

你有什么办法解决这个问题吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 02:44:28

问题是您在作为STG之后使用别名,请尝试以下操作:

代码语言:javascript
复制
BEGIN

    MERGE INTO dm_udm.D_ANOMALY_TYPES_CATEGORY AS DIM
    USING (SELECT ID AS ID_ANOMALY_TYPES_CATEGORY
            ,AnomalyType
            ,AnomalyCategoryID
            ,AnomalyTypeDesc
        FROM src_udm.AnomalyTypesCategory
    )AS STG 
    ON DIM.ID_ANOMALY_TYPES_CATEGORY=STG.ID_ANOMALY_TYPES_CATEGORY
    WHEN MATCHED
        THEN UPDATE SET                     
        DIM.ID_ANOMALY_TYPES_CATEGORY           =   STG.ID_ANOMALY_TYPES_CATEGORY
        ,DIM.DES_ANOMALY_TYPE                   =   STG.AnomalyType
        ,DIM.ID_ANOMALY_CATEGORY                =   STG.AnomalyCategoryID
        ,DIM.DES_ANOMALY_TYPE_DESC              =   STG.AnomalyTypeDesc
    WHEN NOT MATCHED BY TARGET
    THEN INSERT
        (
            ID_ANOMALY_TYPES_CATEGORY   
            ,DES_ANOMALY_TYPE           
            ,ID_ANOMALY_CATEGORY            
            ,DES_ANOMALY_TYPE_DESC      
        )
    VALUES
        (
            STG.ID_ANOMALY_TYPES_CATEGORY
            ,STG.AnomalyType
            ,STG.AnomalyCategoryID
            ,STG.AnomalyTypeDesc
        );
END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66124495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档