sqlserver中delete、update中使用表別名和oracle的區(qū)別
昨天發(fā)現(xiàn)程序中數(shù)據(jù)分析的結(jié)果不對(duì),重新進(jìn)行分析后,原數(shù)據(jù)仍在,有值的字段被累計(jì)。心說,不對(duì)啊,是重新生成記錄后才分析的啊。難道忘了DELETE了?查代碼,發(fā)現(xiàn)有刪除語句。于是在查詢分析器中執(zhí)行,報(bào)錯(cuò)。反復(fù)試幾次,明白了,Delete From不認(rèn)表名別名!回頭想下,當(dāng)初程序改完后主要是在Oracle中測(cè)的,SQLServer一直沒細(xì)測(cè)。
之所以要用別名,是因?yàn)閣here條件中需要用到子查詢寫一些條件,下面不寫那么復(fù)雜,僅說明一下問題。
結(jié)論:
(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
兩點(diǎn)經(jīng)驗(yàn):
1、測(cè)試要全面;
2、要自信,寫程序時(shí)考慮的情況挺全的。
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語法使用詳細(xì)解析
- MySQL刪除數(shù)據(jù)Delete與Truncate語句使用比較
- SQL?Delete使用示例詳解
相關(guān)文章
SQLSERVER數(shù)據(jù)備份文件的分割備份方法
這篇文章主要介紹了SQLSERVER數(shù)據(jù)備份文件的分割備份方法 ,需要的朋友可以參考下2014-12-12SQL Server存儲(chǔ)過程同時(shí)返回分頁結(jié)果集和總數(shù)
這篇文章主要為大家詳細(xì)介紹了SQL Server存儲(chǔ)過程同時(shí)返回分頁結(jié)果集和總數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01在SQL Server的try...catch語句中獲取錯(cuò)誤消息代碼的的語句
本文為大家詳細(xì)介紹下如何在SQL Server的try...catch語句中獲取錯(cuò)誤消息的代碼,具體示例如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07SQL Server高級(jí)內(nèi)容之子查詢和表鏈接概述及使用
子查詢就是在查詢的where子句中的判斷依據(jù)是另一個(gè)查詢的結(jié)果,表鏈接就是將多個(gè)表合成為一個(gè)表,但是不是向union一樣做結(jié)果集的合并操作,但是表鏈接可以將不同的表合并,并且共享字段,感興趣的你可以了解下本文2013-03-03sql?server設(shè)置數(shù)據(jù)庫某個(gè)字段值不能重復(fù)兩種方法
sqlserver的表中有一個(gè)列不能有相同的值,如何保證每次插入該列的值都是不同的,這篇文章主要給大家介紹了關(guān)于sql?server設(shè)置數(shù)據(jù)庫某個(gè)字段值不能重復(fù)的兩種方法,需要的朋友可以參考下2023-11-11