SQL點滴1—SET QUOTED_IDENTIFIER OFF語句的作用
先看下面幾個sql語句
代碼
1 SET QUOTED_IDENTIFIER ON
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'
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+”打出來的,初學者可能會犯這樣的錯誤。
作者:Tyler Ning
出處:http://www.rzrgm.cn/tylerdonet/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,請微信聯系冬天里的一把火

浙公網安備 33010602011771號