【发布时间】:2021-05-13 09:48:52
【问题描述】:
我正在尝试在以下过程中使用 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'.
似乎所有别名都是正确的,我不明白为什么会出现此错误。
关于如何解决它的任何想法?提前致谢。
【问题讨论】:
-
能否请您尝试删除此部分( ID_ANOMALY_TYPES_CATEGORY ,DES_ANOMALY_TYPE ,ID_ANOMALY_CATEGORY ,DES_ANOMALY_TYPE_DESC )
-
AS STG后跟别名,则不要使用别名。所以删除它们 -
这些是问题,谢谢。
标签: sql sql-server database stored-procedures merge