SQL SERVER中QUOTED_IDENTIFIER选型的使用

虽然经常看到SET QUOTED_IDENTIFIER ON/OFF 这样的语句,但是不会太注意到底会有什么作用,或者说在什么情况下使用。看了联机帮助文档上得介绍,挺晕的,我打算自己通过实验,来总结一下这个选项的用法。

一般我们在创建一个表时,不管是QUOTED_IDENTIFIER ON还是OFF ,就是这么写得:

CREATE TABLE T(FIRST INT,SECOND INT)

但是在SET QUOTED_IDENTIFIER_ON 之后,你可以通过双引号把表名括起来,这么写:

CREATE TABLE "T"(FIRST INT,SECOND INT)

第一部分:SET QUOTED_IDENTIFIER ON

特别情况是在我们的表名是SQL SERVER 的保留字时,比如表名是:FROM关键字的时候,是不能写成这样的:

CREATE TABLE FROM(FIRST INT,SECOND INT)

运行结果:

 
必须得写成这样:
CREATE TABLE FROM(FIRST INT,SECOND INT)
运行结果:
注意:这里只能用双引号来括,不能用单引号。
 
 
这样看来确实有点作用。那么,这个单引号有什么作用呢?他得作用就是括住字符串,而双引号则不能括住字符串,看下面的例子:
 
 
应该是这么用:
 
如果说现在要输出的字符串里面有双引号怎么办呢?没关系,可以直接输出:
 
如果在要输出的字符串里面有单引号怎么办呢?只要写两个单引号就行了:
 
 
第二部分:SET QUOTED_IDENTIFIER OFF
这个时候,单引号和双引号都可以来括住字符串,同时也能括住对方,也就是单引号可以括住双引号,双引号也可以括住单引号:
 
 
最后总结一下:
1.在ON的情况下,双引号用来括住关键字和单引号(上面没有给出例子),单引号括住字符串和双引号。
2.在OFF的情况下,双引号和单引号都是用来括住字符串的,以及对方。
3.不管是在那种情况下,当双引号或者单引号要括住自己,比如输出 from"you     写成    "from""you"   
                                 from'you  写成 'from''you'.
posted @ 2011-08-01 13:52  珍惜每一天  阅读(354)  评论(0编辑  收藏  举报