新聞中心
編者注:SET QUOTED_IDENTIFIER

成都創(chuàng)新互聯(lián)公司是少有的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、營(yíng)銷型企業(yè)網(wǎng)站、成都微信小程序、手機(jī)APP,開(kāi)發(fā)、制作、設(shè)計(jì)、外鏈、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年成立,堅(jiān)持透明化,價(jià)格低,無(wú)套路經(jīng)營(yíng)理念。讓網(wǎng)頁(yè)驚喜每一位訪客多年來(lái)深受用戶好評(píng)
使 Microsoft? SQL Server? 遵從關(guān)于引號(hào)分隔標(biāo)識(shí)符和文字字符串的 SQL-92 規(guī)則。由雙引號(hào)分隔的標(biāo)識(shí)符可以是Transact-SQL 保留關(guān)鍵字,或者可以包含 Transact-SQL 標(biāo)識(shí)符語(yǔ)法規(guī)則通常不允許的字符。
先看下面幾個(gè)sql語(yǔ)句
- SET QUOTED_IDENTIFIER ON
- SELECT * FROM "USER" WHERE a='netasp'
- SET QUOTED_IDENTIFIER ON
- SELECT * FROM [USER] WHERE a='netasp'
- SET QUOTED_IDENTIFIER OFF
- SELECT * FROM [USER] WHERE a="netasp"
- SET QUOTED_IDENTIFIER OFF
- SELECT * FROM [USER] WHERE a= 'netasp'
當(dāng)在數(shù)據(jù)庫(kù)中新建一個(gè)名字是USER的表的時(shí)候,常常會(huì)帶來(lái)一些麻煩,因?yàn)閁SER是SQL中的關(guān)鍵字,但是上面的幾個(gè)語(yǔ)句不會(huì)報(bào)錯(cuò)。再說(shuō)一個(gè)概念:標(biāo)示符是SQL中的中括號(hào)[]。
當(dāng)SET QUOTED_IDENTIFIER值為ON時(shí),雙引號(hào)內(nèi)的字符被當(dāng)作是數(shù)據(jù)庫(kù)對(duì)象。就是說(shuō)雙引號(hào)" "和標(biāo)識(shí)符[]效果是一樣樣的,他們都表示引用的字符是數(shù)據(jù)庫(kù)對(duì)象。單引號(hào)'表示字符串的邊界。
當(dāng)SET QUOTDE_IDENTIFIER OFF時(shí),雙引號(hào)被解釋為字符串的邊界,和單引號(hào)的作用是類似的。就是說(shuō)雙引號(hào)"不能當(dāng)做標(biāo)識(shí)符使用,但是可以當(dāng)做字符邊界,和單引號(hào)'的效果是一樣樣的。
可以做一個(gè)總結(jié):當(dāng)SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示數(shù)據(jù)庫(kù)對(duì)象;當(dāng)SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串邊界;還有這里的雙引號(hào)" 并不是兩個(gè)單引號(hào)'合起來(lái)的,是shift+”打出來(lái)的,初學(xué)者可能會(huì)犯這樣的錯(cuò)誤。
標(biāo)題名稱:SQL點(diǎn)滴之SETQUOTED_IDENTIFIEROFF語(yǔ)句的作用
文章來(lái)源:http://www.5511xx.com/article/dpioode.html


咨詢
建站咨詢
