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

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

时间: 2024-10-29 05:26:09

SQL点滴1—SET QUOTED_IDENTIFIER OFF语句的作用的相关文章

SQL点滴16—SQL分页语句总结

原文:SQL点滴16-SQL分页语句总结 今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了. 使用top选项 selecttop10*from Orders a where a.orderid notin(selecttop10 orderid from Orders orderby orderid) orderby a.orderid 使用max函数 这种方法的前提是有唯一值的一个列. selecttop10*from Orders a  where a.or

SQL点滴2—重温sql语句中的join操作

原文:SQL点滴2-重温sql语句中的join操作 1.join语句 Sql join语句用来合并两个或多个表中的记录.ANSI标准SQL语句中有四种JOIN:INNER,OUTER,LEFTER,RIGHT,一个表或视图也可以可以和它自身做JOIN操作.下面举例说明.下面所举的例子使用的表有Employee和Department,在这两个表中Department.DepartmentID是主键,Employee.DepartmentID是外键. 图1-Employee表 LastName De

SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别  SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值. 如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入

SQL点滴25—T-SQL面试语句,练练手

原文:SQL点滴25-T-SQL面试语句,练练手 1. 用一条SQL语句查询出每门课都大于80分的学生姓名  name   kecheng    fenshu 张三     语文     81张三     数学     75李四     语文     76李四     数学     90王五     语文     81王五     数学     100王五     英语     90 思路:这里不能直接用分数>80这样的比较条件来查询的到结果,因为要求没门成绩都大于80.我们可以反过来思考,如果

SQL点滴21—几个有点偏的语句

原文:SQL点滴21-几个有点偏的语句 SQL语句是一种集合操作,就是批量操作,它的速度要比其他的语言快,所以在设计的时候很多的逻辑都会放在sql语句或者存储过程中来实现,这个是一种设计思想.但是今天我们来讨论另外一个话题.Sql页提供了丰富的函数供我们使用,还有很多操作有意想不到的结果,今天这个随笔来看看一些不常见到的sql语句.这些语句不像普通的增删查那样平白,它的奇妙之处有时候让人另眼相看. 1.  假设我想把Person.Contact表中所有人的名字用逗号连接起来,串成一个字符串,可能

SQL点滴32—Excel中CONCATENATE函数生成SQL语句

原文:SQL点滴32-Excel中CONCATENATE函数生成SQL语句 当拿到一个Excel的时候需要将这里面的数据插入到数据库里面,该怎么办,除了使用SSIS数据导入之外还可以使用Excel中的CONCATENATE函数,这个有点技巧,第一次使用的时候可能会让你有点困惑.如果我们理解这个函数的定义就不难了.   定义 CONCATENATE 函数可将最多 255 个文本字符串合并为一个文本字符串.联接项可以是文本.数字.单元格引用或这些项的组合.例如,如果您的工作表的单元格 A1 中包含某

SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比

原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比  今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章,自己添加了一些内容,做了简单的总结,这个语句还是第一次见到,学习了.我从简单到复杂地写,希望高手们不要见笑.下面的sql语句设计到三个表,表的内容我用txt文件复制进去,这里不妨使用上一个随笔介绍的建立端到端的package的方法将这些表导入到数据库中,具体的就不说了. 从这里下载文件emplo

SQL点滴5—产生时间demention,主要是时间转换

原文:SQL点滴5-产生时间demention,主要是时间转换 数据仓库中有时间表,存储时间信息,这个存储过程接收开始时间结束时间,写入时间具体信息.有高手用excel函数功能很快能产生INSERT语句不会啊,只能用这个. 参考知识 1 vSET ANSI_NULLS ON 2  GO 3 4  SET QUOTED_IDENTIFIER ON 5 GO 6 7 /*---------------------------------------------------

SQL点滴6—“微软不认识闰年2月29日”&字符"N"的作用

原文:SQL点滴6-"微软不认识闰年2月29日"&字符"N"的作用 http://www.cnbeta.com/articles/50580.htm这个网页新闻中报告许多微软软件不能识别闰年的2月29号 ,其中就包含SQL Server 2008,本人就在自己的SQL Server 2008中写了几个语句试验,这几个语句显示能得到2月29号这一天,不知道照这则新闻所说在这一天安装软件会不会导致错误. select DATEADD(DD,1,'28/Feb/2