本篇內(nèi)容介紹了“Oracle與SQLServer對Update語句怎么處理”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
太原ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
在數(shù)據(jù)庫操作中,我們經(jīng)常使用Update語句對表進行修改、更新等。但是不同的數(shù)據(jù)庫在對Update語句的處理過程可能也是不同的。
Oracle與SQLServer對Update語句該怎么處理
Oracle和SQLServer對Update語句的處理是不同的。同樣的寫法執(zhí)行出來的結(jié)果會不一樣,假如你使用慣了Oracle的話,你需要注意下。在復雜的Update語句中,Oracle一般用子查詢來實現(xiàn)。比如:
updatetable1t1setc1=(selectt2.c1fromtable2t2wheret1.c2=t2.c2)
當然,假如單純的將該語句復制到sqlserver中運行的話會提示語法錯誤:
行一出現(xiàn)語法錯誤
Oracle與SQLServer對Update語句該怎么處理
這個時候你可能會想既然不支持別名的話,直接用表名好了,修改語句為:
updatetable1setc1=(selectt2.c1fromtable2t2wheretable1.c2=t2.c2)
這個語句確實在sqlserver中能運行,假如你真的運行了它,你就會悲劇了。因為table1中所有的記錄都被更新過,而且一部分本不需要更的記錄被更新成了null,而不是像oracle中只對符合子查詢的記錄進行更新。sqlserver中怎么來對這種情況進行更新的呢?答案是updatefrom。
在sqlserver中要正常對這種情況進行處理的話,需要將上述sql語句進行修改,修改后的sql如下:
updatetable1setc1=t2.c2fromtable2t2wherec2=t2.c1
“Oracle與SQLServer對Update語句怎么處理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!