关闭

SET QUOTED_IDENTIFIER ON|OFF

标签: QUOTED_IDENTIFIERSQL
543人阅读 评论(0) 收藏 举报
分类:

先看下面几个sql语句

 

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时,双引号内的字符被当作是数据库对象。就是说双引号" "和标识符[]效果是一样样的,他们都表示引用的字符是数据库对象。单引号'表示字符串的边界。

  当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的。就是说双引号"不能当做标识符使用,但是可以当做字符边界,和单引号'的效果是一样样的。

  可以做一个总结:当SET QUOTED_IDENTIFIER ON " "等同于[ ] 表示数据库对象;当SET QUOTED_IDENTIFIER OFF " "等同于' '表示字符串边界;还有这里的双引号" 并不是两个单引号'合起来的,是shift+”打出来的,初学者可能会犯这样的错误。

 

 

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18203次
    • 积分:362
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:6篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论