Sql Update语句使用表别号的方法
Sql Update语句使用表别名的方法http://database.51cto.com/art/201009/227874_all.htm?在select中使用表
Sql Update语句使用表别名的方法
http://database.51cto.com/art/201009/227874_all.htm
?
在select中使用表别名很多人都知道,但是在Sql Update中使用表别名可能知道的人就没那么多了,下面就为您介绍这种Sql Update语句使用表别名的方法,供您参考。
AD:2013云计算架构师峰会课程资料下载
?
使用Sql?Update语句,同样可以使用表别名,下面就将为您介绍Sql Update语句使用表别名的方法,希望对您学习Sql Update语句有所启迪。
在编写Sql脚本时通过表别名可以大大缩减Sql代码,同时表别名也是解决同表多次引用的手段之一。在select中使用表别名大家应该都很熟悉了:
- A.Key1?=?B.Key1??
但是在Sql Update中使用表别名可能就没那么多人知道了。
- T.Key1?=?'xxxx'? ??
- TTableA.NextKey?=?T.Key? ??
- T.Index?=?TableA.Index?+?1? ?
如果不对Update后面的TableA使用别名的话,我们只能通过以下方法来实现。
- TTableA.NextKey?=?T.Key? ??
- T.Index?=?TableA.Index?+?1??
使用别名可以得到更简洁的写法:
- T1.NextKey?=?T2.Key? ??
- whereT2.Index?=?T1.Index?+?1??
?
?
【编辑推荐】
Sql Server视图的概念
使用SQL查询连续号码段的方法
实现子孙树查询的经典SQL语句
查询表的字段名的sql语句写法
SQL查询最大最小值的示例
?
?
?
SQL Server中Delete语句表名不能用别名
昨天,无意中发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了?DELETE?了?查代码,发现有删除语句。
????于是在查询分析器中执行,报错。反复试几次,明白了,Delete?From?不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer?一直没细测。
????之所以要用别名,是因为?where?条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。
结论:
delete?from?TABLEA?A?where?A.FIELD1=10????????(ORACLE适用)
delete?TABLEA?from?TABLEA?A?where?A.FIELD1=10?(SQLSERVER适用)
delete??from?TABLEA?where?TABLEA.FIELD1=10????(Ora/SQL均适用)