使用sql update语句,假如包含自连接时使用别名,运行会报错?不要紧,接下来的SQL server内容就将教您如何处理这种问题的方法,供您参考。
最近写了个sql update语句,条件用到了自连接,于是将代码顺理成章地写成了这样:
update ValidNodes set ItemValid=0 from ValidNodes as v1 inner join ValidNodes as v2 on v1.Parent=v2.ItemID where v2.ItemValid=0 and v1.ItemValid=1
结果编译通过,运行时报错,提示第一行update语句后面的表 'ValidNodes' 不明确。
莫非sql update语句不支持别名?结果改成一般的连接,运行成功,之后尝试修改代码,变成:
update ValidNodes set ItemValid=0 from ValidNodes join ValidNodes as v2 on ValidNodes.Parent=v2.ItemID where v2.ItemValid=0 and ValidNodes.ItemValid=1
执行通过了。