MERGE Into 无法更新ON子句中引用的列

代码如下: 
MERGE Into t1 T1
  Using (Select * From t2) T2 
  On (T1.ID=T2.ID) 
  When MATCHED THEN 
    UPDATE Set 
<span style="color:#ff0000;"><span style="white-space:pre">	</span>T1.ID = T2.ID, </span>
<span style="color:#ff0000;"><span style="white-space:pre">	</span>Y.JTBM = J.JTBM,</span>
<span style="white-space:pre">	</span><span style="color:#ff0000;">···</span>
 

执行的时候报无法更新on子句中引用的列'T1'.'ID'

解决办法:

ON中T1.ID已经与T2.ID进行了匹配,所以在SET中不能再对T1.ID赋值,去掉该行即可。

MERGE Into t1 T1
 Using (Select * From t2) T2 
 On (T1.ID=T2.ID) 
<pre name="code" class="sql"> When UPDATE Set
<span style="white-space:pre">	</span><span style="color:#ff0000;">Y.JTBM = J.JTBM,</span>
<span style="color:#ff0000;"><span style="white-space:pre">	</span>···</span>
 When NOT MATCHED THEN 
<span style="white-space:pre">	</span>INSERT (id,b) VALUES(T2.ID,T2.b);
 
 

执行后成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值