使用sql update语句,如果包含自连接时使用别名,运行会报错?不要紧,下面就将教您如何处理这种问题的方法,供您参考。
最近写了个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
执行通过了。
【编辑推荐】