先看下面幾個(gè)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'
當(dāng)在數(shù)據(jù)庫中新建一個(gè)名字是USER的表的時(shí)候,常常會(huì)帶來一些麻煩,因?yàn)閁SER是SQL中的關(guān)鍵字,但是上面的幾個(gè)語句不會(huì)報(bào)錯(cuò)。再說一個(gè)概念:標(biāo)示符是SQL中的中括號(hào)[]。
當(dāng)SET QUOTED_IDENTIFIER值為ON時(shí),雙引號(hào)內(nèi)的字符被當(dāng)作是數(shù)據(jù)庫對(duì)象。就是說雙引號(hào)" "和標(biāo)識(shí)符[]效果是一樣樣的,他們都表示引用的字符是數(shù)據(jù)庫對(duì)象。單引號(hào)'表示字符串的邊界。
當(dāng)SET QUOTDE_IDENTIFIER OFF時(shí),雙引號(hào)被解釋為字符串的邊界,和單引號(hào)的作用是類似的。就是說雙引號(hào)"不能當(dāng)做標(biāo)識(shí)符使用,但是可以當(dāng)做字符邊界,和單引號(hào)'的效果是一樣樣的。
可以做一個(gè)總結(jié):當(dāng)SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示數(shù)據(jù)庫對(duì)象;當(dāng)SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串邊界;還有這里的雙引號(hào)" 并不是兩個(gè)單引號(hào)'合起來的,是shift+”打出來的,初學(xué)者可能會(huì)犯這樣的錯(cuò)誤。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注