重生后宫升职记txt下载:SQL点滴之SET QUOTED_IDENTIFIER OFF语句的作用

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 04:32:49

SET QUOTED_IDENTIFIER使 Microsoft® SQL Server™ 遵从关于引号分隔标识符和文字字符串的 SQL-92 规则。由双引号分隔的标识符可以是Transact-SQL 保留关键字,或者可以包含 Transact-SQL 标识符语法规则通常不允许的字符。

AD:


    编者注SET QUOTED_IDENTIFIER

    使 Microsoft® SQL Server™ 遵从关于引号分隔标识符和文字字符串的 SQL-92 规则。由双引号分隔的标识符可以是Transact-SQL 保留关键字,或者可以包含 Transact-SQL 标识符语法规则通常不允许的字符。

    先看下面几个sql语句

        
    1. SET QUOTED_IDENTIFIER ON 
    2. SELECT * FROM "USER"    WHERE a='netasp'   
    3.    
    4. SET QUOTED_IDENTIFIER ON 
    5. SELECT * FROM [USERWHERE 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+”打出来的,初学者可能会犯这样的错误。
     

    原文链接:http://www.cnblogs.com/tylerdonet/archive/2010/08/01/1789979.html