sqlserver中delete、update中使用表别名和oracle的差异
发布时间:2021-11-30 21:36:16 所属栏目:教程 来源:互联网
导读:昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的
昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了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 (OraSQL均适用) 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 执行成功 所以要做通用的程序,做好不使用别名 (编辑:宁德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |