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+”打出来的,初学者可能会犯这样的错误。对象