zoukankan      html  css  js  c++  java
  • 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、要自信,写程序时考虑的情况挺全的。

    本文来自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

    执行成功

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

  • 相关阅读:
    1370
    1336
    1298
    1289
    Buy Tickets(poj2828)
    The Balance(poj2142)
    1067
    Lightoj1011
    1319
    Back to Underworld(lightoj 1009)
  • 原文地址:https://www.cnblogs.com/bigguai/p/2278955.html
Copyright © 2011-2022 走看看