请帮我处理我的剧本。
我正在尝试运行脚本并收到错误:
MERGE语句尝试多次更新或删除同一行
这是我的剧本。
MERGE [Database2].[DBO].[evt_Building Permits] AS stm
USING (SELECT * FROM [Database1].[DBO].[PERMIT_TRACKING]) AS sd ON rtrim(ltrim(stm.BUILDING_PERMIT_NO)) = rtrim(ltrim(sd.Building_Permit_Number)) COLLATE DATABASE_DEFAULT
WHEN Matched THEN
UPDATE SET stm.concession = sd.prj_concession;
非常感谢您的帮助。
答案 0 :(得分:0)
表示你的源表[Database1]。[DBO]。[PERMIT_TRACKING]有重复的BUILDING_PERMIT_NO键
尝试找到重复的建筑许可证
SELECT BUILDING_PERMIT_NO,count(*) FROM [Database1].[DBO].[PERMIT_TRACKING] group by BUILDING_PERMIT_NO having count(*) > 0
如果您无法修复源数据,请确保通过BUILDING_PERMIT_NO
对数据进行分组来确定源查询中有唯一键