SQL点滴1—SET QUOTED_IDENTIFIER OFF语句的作用

  先看下面几个sql语句

ContractedBlock.gif ExpandedBlockStart.gif 代码
 1  SET  QUOTED_IDENTIFIER  ON
 2  SELECT   *   FROM  " USER "     WHERE  a = ' netasp '  
 3 
 4  SET  QUOTED_IDENTIFIER  ON
 5  SELECT   *   FROM   [ USER ]   WHERE  a = ' netasp '  
 6 
 7  SET  QUOTED_IDENTIFIER  OFF
 8  SELECT   *   FROM   [ USER ]      WHERE  a = "netasp" 
 9 
10  SET  QUOTED_IDENTIFIER  OFF
11  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+”打出来的,初学者可能会犯这样的错误。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值