[英]MERGE statement produces multiple “Invalid column name”
我正在嘗試在以下過程中使用 MERGE 語句:
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
但我在程序執行后收到以下錯誤:
Invalid column name 'AnomalyCategoryID'.
Invalid column name 'AnomalyCategoryID'.
Invalid column name 'AnomalyTypeDesc'.
Invalid column name 'AnomalyTypeDesc'.
Invalid column name 'AnomalyType'.
Invalid column name 'AnomalyType'.
似乎所有別名都是正確的,我不明白為什么會出現此錯誤。
關於如何解決它的任何想法? 提前致謝。
問題是您在 AS STG 之后使用別名,請嘗試以下操作:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.