手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >sqlserver中delete、update中使用表别名和oracle的区别
sqlserver中delete、update中使用表别名和oracle的区别
摘要:昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELET...

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

执行成功

所以要做通用的程序,做好不使用别名

【sqlserver中delete、update中使用表别名和oracle的区别】相关文章:

sql server中Select count(*)和Count(1)的区别和执行方式

Sql Server中REPLACE函数的使用

SqlServer2008误操作数据(delete或者update)后恢复数据的方法

sqlserver2005使用row_number() over分页的实现方法

sql server 临时表 查找并删除的实现代码

sqlserver 中charindex/patindex/like 的比较

SqlServer 2005 中字符函数的应用

sqlserver 无法验证产品密匙的完美解决方案[测试通过]

sql2008设置subcategory报表参数可用值和默认值步骤分享

sqlserver 比较两个表的列

精品推荐
分类导航