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'
當在數據庫中新建一個名字是USER的表的時候,經常會帶來一些麻煩,由於USER是SQL中的關鍵字,可是上面的幾個語句不會報錯。再說一個概念:標示符是SQL中的中括號[]。數據庫
當SET QUOTED_IDENTIFIER值爲ON時,雙引號內的字符被看成是數據庫對象。就是說雙引號" "和標識符[]效果是同樣樣的,他們都表示引用的字符是數據庫對象。單引號'表示字符串的邊界。spa
當SET QUOTDE_IDENTIFIER OFF時,雙引號被解釋爲字符串的邊界,和單引號的做用是相似的。就是說雙引號"不能當作標識符使用,可是能夠當作字符邊界,和單引號'的效果是同樣樣的。code
能夠作一個總結:當SET QUOTED_IDENTIFIER ON " "等同於[ ] 表示數據庫對象;當SET QUOTED_IDENTIFIER OFF " "等同於' '表示字符串邊界;還有這裏的雙引號" 並非兩個單引號'合起來的,是shift+」打出來的,初學者可能會犯這樣的錯誤。對象