代码如下:
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);
执行后成功。