【问题标题】:MERGE statement yields binding errorMERGE 语句产生绑定错误
【发布时间】:2013-07-23 00:17:33
【问题描述】:

我试过这段代码:

 Merge fact_table as target 
using( select top 1 idDateDeb,PK_Date, Week_Of_Year from dbo.dim_date_Debut)
as source 
on cast(source.PK_Date as date)=cast(dbo.FACT_TABLE.DATE_DEBUT_ALRM as date)
when matched then update set target.ID_TEMP_DEB=source.idDateDeb;

但我得到这个错误:

消息 4104,第 16 级,状态 1,第 4 行
无法绑定多部分标识符“dbo.FACT_TABLE.DATE_DEBUT_ALRM”。

我正在尝试做类似this question 的事情。

【问题讨论】:

  • 我建议不要链接到另一个问题,而是描述你在这里尝试做什么(特别是如果它与另一个问题 不同 - 否则这应该关闭为重复)。

标签: sql sql-server-2008 merge


【解决方案1】:

试试:

Merge dbo.fact_table as target 
using( select top 1 idDateDeb,PK_Date, Week_Of_Year from dbo.dim_date_Debut)
as source 
on cast(source.PK_Date as date)=cast(target.DATE_DEBUT_ALRM as date)
when matched then update set target.ID_TEMP_DEB=source.idDateDeb;

您已将 (dbo.) fact_table 别名为 target,因此解析器将期望看到 target,而不是 dbo.FACT_TABLE

【讨论】:

  • 我做了这段代码,但我没有在 Fact_Table 上设置 IdDateDeb :s: 0 行受影响我认为当我在 fact_Table 上插入数据时我必须做 triiger 我 getId 并将其放在 id_tem_deb 但我没有不知道怎么做
  • 我尝试了这段代码,但 O 行影响了问题是什么?将 fact_table 合并为目标,使用(从 dbo.dim_date_fin 中选择前 1 个 idDatefin、PK_Date_fin、Week_Of_Year)作为演员表源(source.PK_Date_fin 作为日期)=cast(target.DATE_fin_ALaRM 作为日期),然后更新设置 target.ID_TEMP_DEB=source。 idDatefin, target.NUMEROSEMAINE=source.Week_Of_Year; heeeeelp 请;(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多