sqlserver中delete、update中如何使用表别名和oracle的区别

人生在世,想美好的事情,就会找到快乐,走向成功;想失意的事情,就会走向失望的深渊,无力面对生活和失败。

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了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

执行成功所以要做通用的程序,做好不使用别名

以上就是sqlserver中delete、update中如何使用表别名和oracle的区别。是一趟旅途,每个人都在途中,路过的都是景,擦肩的都是客,遇到的都是缘,回忆的都是念,时光如淡烟,我们抓不住,美好一瞬间,不能长久拥有,学会从过去中转身,幸福才会招待你。更多关于sqlserver中delete、update中如何使用表别名和oracle的区别请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
SQL SERVER临时表排序问题的如何解决方法

Vscode上如何使用SQL的方法

SQL Server 批量插入数据的完美如何解决方案

浅析SQL Server授予了CREATE TABLE权限但是无法创建表

group by 按某一时间段分组统计并查询(推荐)