Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1376229
  • 博文数量: 205
  • 博客积分: 6732
  • 博客等级: 准将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 17:59
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(10)

2014年(1)

2013年(39)

2012年(23)

2011年(27)

2010年(21)

2009年(55)

2008年(28)

我的朋友

分类: SQLServer

2013-04-26 16:24:05

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhaoxjzhao/archive/2010/06/03/5643873.aspx

 

=====================

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

执行成功

 

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

阅读(1926) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~