SQL Server: The multi-part identifier ... could not be bound
该错误通常在update
语句报出。原因是企图在set
子句中调用from
子句中给表设立的别名。这个别名通常用于子句中的where
子句的条件判定。
例:
UPDATE Tab
SET THIS.prop1 = (SELECT propx FROM Tab WHERE propy = THIS.propy)
FROM Tab THIS
WHERE propz = valz;
预期效果是希望将满足where
条件的数据进新更新,实际上会报出如下错误:
The multi-part identifier 'THIS.prop1' could not be bound.
原因是DBMS并搞不懂你的THIS和上面提到的Tab之间的关系。
解决方法:UPDATE Tab
->UPDATE THIS
,即把要更新的表名设置为为自己定义的别名即可。