Sql 无法在合并中绑定多部分标识符

Sql 无法在合并中绑定多部分标识符,sql,sql-server,tsql,sql-merge,Sql,Sql Server,Tsql,Sql Merge,我正在使用下面的合并并获取“多部分标识符”MasterSource.monthvrip“无法绑定”错误。在网上查了很多,但运气不好。看起来像是在使用某个已定义的关键字,但无法理解。任何建议都会有帮助 使用TestDatabase 将[dbo].[cost1]合并为目标 使用( 选择[monthvrip] 来自[dbo]。[成本] )作为主要来源 ON(主源。[monthvrip]=目标。[monthvrip]) 匹配和时(主源。[monthvrip]目标。[monthvrip]) 然后更新 设置

我正在使用下面的合并并获取“多部分标识符”MasterSource.monthvrip“无法绑定”错误。在网上查了很多,但运气不好。看起来像是在使用某个已定义的关键字,但无法理解。任何建议都会有帮助

使用TestDatabase
将[dbo].[cost1]合并为目标
使用(
选择[monthvrip]
来自[dbo]。[成本]
)作为主要来源
ON(主源。[monthvrip]=目标。[monthvrip])
匹配和时(主源。[monthvrip]目标。[monthvrip])
然后更新
设置主源。[monthvrip]=目标。[monthvrip]
当目标不匹配时
插入
([monthvrip])
价值观
(MasterSource.[monthvrip])
输出
$action,
插入。*,
删除*;
Msg 4104,16级,状态1,第4行

无法绑定多部分标识符“MasterSource.monthvrip”

你需要改变

THEN UPDATE 
  SET MasterSource.[monthvrip] = target.[monthvrip]

按照目前的方式,您正在尝试更新合并的源,而不是目标。

您需要更改

THEN UPDATE 
  SET MasterSource.[monthvrip] = target.[monthvrip]


按照目前的方式,您正在尝试更新合并的源,而不是目标。

您确定这是正确的语法吗。为什么不删除“派生表”主源,因为您不在其中进行任何筛选,只选择一列。最后,只需在masterSource.monthvrip=target.monthvrip上使用cost as masterSource,将cost1合并为目标。我在表中有很多列,并粘贴在这里1,以便可以轻松扫描代码。请查阅,您不能对列使用别名进行更新。因此,使用
SET[monthvrip]=
您确定这是正确的语法吗。为什么不删除“派生表”主源,因为您不在其中进行任何筛选,只选择一列。最后,只需在masterSource.monthvrip=target.monthvrip上使用cost as masterSource,将cost1合并为目标。我在表中有很多列,并粘贴在这里1,以便可以轻松扫描代码。请查阅,您不能对列使用别名进行更新。所以使用
SET[monthvrip]=