sqlserver中delete、update中使用表別名和oracle的區(qū)別
昨天發(fā)現(xiàn)程序中數(shù)據(jù)分析的結果不對,重新進行分析后,原數(shù)據(jù)仍在,有值的字段被累計。心說,不對啊,是重新生成記錄后才分析的啊。難道忘了DELETE了?查代碼,發(fā)現(xiàn)有刪除語句。于是在查詢分析器中執(zhí)行,報錯。反復試幾次,明白了,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
兩點經(jīng)驗:
1、測試要全面;
2、要自信,寫程序時考慮的情況挺全的。
update情況
update T_report a
set a.status='1'
where a.report_Seq=1234
執(zhí)行失敗
update a
set a.status='1'
from T_report a
where a.report_Seq=1234
執(zhí)行成功
所以要做通用的程序,做好不使用別名
- Mysql數(shù)據(jù)庫如何使用DELETE語句從數(shù)據(jù)庫表中刪除數(shù)據(jù)(數(shù)據(jù)庫數(shù)據(jù)刪除)
- MySQL語句之刪除指令deleted和truncate在使用中的異同詳解
- 解析MySQL中DELETE語句中別名的使用
- MySQL中UPDATE與DELETE語句的使用教程
- mysql delete limit 使用方法詳解
- ORACLE SQL-UPDATE、DELETE、INSERT優(yōu)化和使用技巧分享
- MySQL DELETE語法使用詳細解析
- MySQL刪除數(shù)據(jù)Delete與Truncate語句使用比較
- SQL?Delete使用示例詳解
相關文章
SQL Server誤區(qū)30日談 第17天 有關頁校驗和的誤區(qū)
從舊的實例升級上來的數(shù)據(jù)庫不會自動開啟頁校驗和,除非你顯式使用ALTER DATABASE databasename SET PAGE_VERIFY CHECKSUM進行開啟。而在SQL Server 2005或2008新建的數(shù)據(jù)庫頁校驗和是默認開啟的2013-01-01
MSSQL 多字段根據(jù)范圍求最大值實現(xiàn)方法
MSSQL 多字段根據(jù)范圍求最大值實現(xiàn)語句,大家可以參考下2009-09-09
SqlServer使用 case when 解決多條件模糊查詢問題
這篇文章主要介紹了SqlServer使用 case when 解決多條件模糊查詢問題 的相關資料,需要的朋友可以參考下2015-12-12
SQLServer 錯誤: 15404,無法獲取有關 Windows NT 組/用戶 WIN-8IVSNAQS8T7\A
SQLServer 錯誤: 15404,無法獲取有關 Windows NT 組/用戶 'WIN-8IVSNAQS8T7\Administrator' 的信息,錯誤代碼 0x534。 [SQLSTATE 42000] (ConnIsLoginSysAdmin)2021-06-06
SqlServer參數(shù)化查詢之where in和like實現(xiàn)之xml和DataTable傳參介紹
在上一篇Sql Server參數(shù)化查詢之where in和like實現(xiàn)詳解中介紹了在Sql Server使用參數(shù)化查詢where in的幾種實現(xiàn)方案,遺漏了xml和表值參數(shù),這里做一個補充2012-05-05

