SET QUOTED_IDENTIFIER ON|OFF用法
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中的中括号[]。
1、当SET QUOTED_IDENTIFIER值为ON时,双引号内的字符被当作是数据库对象。
双引号" "和标识符[]效果是一样样的,他们都表示引用的字符是数据库对象。单引号'表示字符串的边界。
2、当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的。
双引号"不能当做标识符使用,但是可以当做字符边界,和单引号'的效果是一样样的。
总结:
当SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示数据库对象;
当SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串边界;
双引号" 并不是两个单引号'合起来的,是shift+”打出来的。