zoukankan      html  css  js  c++  java
  • SQL点滴1—SET QUOTED_IDENTIFIER OFF语句的作用

      先看下面几个sql语句

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

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    关于托管存储过程的部署, 调试和性能
    Fast Fourier Transform in C# (CookyTurkey)
    The Story of Lena(.tiff)
    反射之反思(转)
    分享Oracle9i中建立自增字段的最新办法
    C#操作注册表
    Oracle服务器的常用命令行详细讲解
    为汶川受灾群众祈福!!!!!
    新的开始,新的起点
    完全删除Oracle数据库的方法
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/1789979.html
Copyright © 2011-2022 走看看