Transact-SQL中Delete语句表名不能用别名?!
2015-03-11 01:34
393 查看
昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELETE了?查代码,发现有删除语句。于是在查询分析器中执行,报错。反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测。
之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。
结论:
(ORACLE适用) DELETE FROM TABLEA A WHERE A.FIELD1=10
(SQLSERVER适用) DELETE TABLEA FROM TABLEA A WHERE A.FIELD1=10
(Ora/SQL均适用) DELETE FROM TABLEA WHERE TABLEA.FIELD1=10
两点经验:
1、测试要全面;
2、要自信,写程序时考虑的情况挺全的。
之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。
结论:
(ORACLE适用) DELETE FROM TABLEA A WHERE A.FIELD1=10
(SQLSERVER适用) DELETE TABLEA FROM TABLEA A WHERE A.FIELD1=10
(Ora/SQL均适用) DELETE FROM TABLEA WHERE TABLEA.FIELD1=10
两点经验:
1、测试要全面;
2、要自信,写程序时考虑的情况挺全的。
相关文章推荐
- Transact-SQL中Delete语句表名不能用别名?!
- Transact-SQL中Delete语句表名不能用别名?!
- SQL中Delete语句表名不能用别名?!
- 在sql的函数里面不能使用insert语句,估计update、delete也不行,改为存储过程就行了。
- SQL Server中Delete语句表名不能用别名
- sqlserver,你的delete语句表名为什么不能别名?
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- sql中的Update语句为什么不能用表的别名
- sql中的Update语句为什么不能用表的别名
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- MySQL —— 1064错误,delete语句中 表名不能用别名
- Sql delete 语句时表别名写法
- sql中的Update语句为什么不能用表的别名
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- SQL中where语句不能使用直接跟在select后列的别名
- oracle SQL 语句里面USER关键词有冲突,不能用作表的别名
- sql中的Update语句为什么不能用表的别名
- SET STATISTICS IO 显示关于 Transact-SQL 语句生成的磁盘活动量的信息
- Transact_SQL小手册(各种sql语句大集合)
- 在Transact-SQL语句中如何用常量来表示二进制形式的数据?