程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> sqlserver中delete、update中使用表別名和oracle的區別

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

執行成功

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved