您现在的位置是:网站首页> 编程资料编程资料
sqlserver中delete、update中使用表别名和oracle的区别_MsSql_
2023-05-26
580人已围观
简介 sqlserver中delete、update中使用表别名和oracle的区别_MsSql_
昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了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、要自信,写程序时考虑的情况挺全的。
update情况
update T_report a
set a.status='1'
where a.report_Seq=1234
执行失败
update a
set a.status='1'
from T_report a
where a.report_Seq=1234
执行成功
所以要做通用的程序,做好不使用别名
相关内容
- Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用_MsSql_
- Sql学习第三天——SQL 关于with ties介绍_MsSql_
- Sql学习第二天——SQL DML与CTE概述_MsSql_
- Sql学习第一天——SQL 练习题(建表/sql语句)_MsSql_
- Sql学习第一天——SQL 将变量定义为Table类型(虚拟表)_MsSql_
- Sql学习第一天——SQL UNION 和 UNION ALL 操作符认识_MsSql_
- sqlserver附加.mdf权限问题解决_MsSql_
- SQL普通表转分区表的方法_MsSql_
- SQL重复记录查询的几种方法_MsSql_
- 游标删除多个表里脏数据的方法_MsSql_
