先看下面幾個sql語句

?2 ? SELECT ? * ? FROM ?" USER "???? WHERE ?a = ' netasp ' ?
?3 ?
?4 ? SET ?QUOTED_IDENTIFIER? ON
?5 ? SELECT ? * ? FROM ? [ USER ] ? WHERE ?a = ' netasp ' ?
?6 ?
?7 ? SET ?QUOTED_IDENTIFIER? OFF
?8 ? SELECT ? * ? FROM ? [ USER ] ???? WHERE ?a = "netasp"?
?9 ?
10 ? SET ?QUOTED_IDENTIFIER? OFF
11 ? SELECT ? * ? FROM ? [ USER ] ???? WHERE ?a = ? ' netasp '
? 當在數據庫中新建一個名字是USER的表的時候,常常會帶來一些麻煩,因為USER是SQL中的關鍵字,但是上面的幾個語句不會報錯。再說一個概念: 標示符是SQL中的中括號[]。
當SET QUOTED_IDENTIFIER值為ON時,雙引號內的字符被當作是數據庫對象。就是說雙引號" "和標識符[]效果是一樣樣的,他們都表示引用的字符是數據庫對象。單引號'表示字符串的邊界。
當SET QUOTDE_IDENTIFIER OFF時,雙引號被解釋為字符串的邊界,和單引號的作用是類似的。就是說雙引號"不能當做標識符使用,但是可以當做字符邊界,和單引號'的效果是一樣樣的。
可以做一個總結: 當SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示數據庫對象;當 SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串邊界;還有這里的雙引號" 并不是兩個單引號'合起來的,是shift+”打出來的,初學者可能會犯這樣的錯誤。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
