Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 执行SQL任务中的Merge语句失败_Visual Studio 2008_Ssis_Merge - Fatal编程技术网

Visual studio 2008 执行SQL任务中的Merge语句失败

Visual studio 2008 执行SQL任务中的Merge语句失败,visual-studio-2008,ssis,merge,Visual Studio 2008,Ssis,Merge,我在VisualStudioSSIS中构建它-我有两个表,每个表有三个字段。一个表是我加载每日值的临时表,另一个是生产表。我想获取每日临时表,如果生产表中存在“键”记录,我想通过将生产表中已有的值添加到临时表中的值来更新汇总值。下面是我认为可以工作的代码,但我得到一个错误“错误:0xC002F210在创建更新EMS摘要表时,执行SQL任务:执行查询”合并EMSCompliancetResummary作为目标 使用EMSE…”失败,出现以下错误:“合并语句中使用的插入列列表不能包含多部分标识符。”

我在VisualStudioSSIS中构建它-我有两个表,每个表有三个字段。一个表是我加载每日值的临时表,另一个是生产表。我想获取每日临时表,如果生产表中存在“键”记录,我想通过将生产表中已有的值添加到临时表中的值来更新汇总值。下面是我认为可以工作的代码,但我得到一个错误“错误:0xC002F210在创建更新EMS摘要表时,执行SQL任务:执行查询”合并EMSCompliancetResummary作为目标 使用EMSE…”失败,出现以下错误:“合并语句中使用的插入列列表不能包含多部分标识符。”

有什么帮助吗

SQL代码:

MERGE EMSComplianceSummary as target
USING EMSComplianceSummaryTemp as source ON (target.key = source.key)
WHEN MATCHED THEN
  UPDATE SET target.sumtoon = target.sumtoon + source.sumtoon,
             target.summoving = target.summoving + source.summoving
WHEN NOT MATCHED THEN
  INSERT (target.trainkey, target.sumtoon, target.summoving)
  VALUES (source.trainkey, source.sumtoon, source.summoving)

听起来你需要删除“目标”。“从插入列表中的每一列。它已经知道您正在插入到目标中。

语句的第一行标识目标表是什么
EMSComplianceSummary
,然后将其别名为target。因此,在MERGE语句的INSERT部分不需要或不允许它

MERGE EMSComplianceSummary as target
USING EMSComplianceSummaryTemp as source ON (target.key = source.key)
WHEN MATCHED THEN
  UPDATE SET target.sumtoon = target.sumtoon + source.sumtoon,
             target.summoving = target.summoving + source.summoving
WHEN NOT MATCHED THEN
  INSERT (trainkey, sumtoon, summoving)
  VALUES (source.trainkey, source.sumtoon, source.summoving);
我还添加了一个分号作为语句终止符,因为它是必需的

MERGE语句需要分号(;)作为语句 终结者。运行MERGE语句时引发错误10713 没有终结者


在Merge语句的开头和结尾添加分号。我知道,开头的逗号不是强制性的(如;with CTE语句),但在过去对我有帮助