SET QUOTED_IDENTIFIER OFF 的作用是什么?

up369 2013-11-15 03:03:20
SET QUOTED_IDENTIFIER OFF 的作用是什么
默认是on 还是 off
如果设成off会有什么影响?
...全文
371 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Landa_Peter 2013-11-20
  • 打赏
  • 举报
回复
当在数据库中新建一个名字是USER的表的时候,常常会带来一些麻烦,因为USER是SQL中的关键字,但是上面的几个语句不会报错。再说一个概念:标示符是SQL中的中括号[]。   当SET QUOTED_IDENTIFIER值为ON时,双引号内的字符被当作是数据库对象。就是说双引号" "和标识符[]效果是一样样的,他们都表示引用的字符是数据库对象。单引号'表示字符串的边界。   当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的。就是说双引号"不能当做标识符使用,但是可以当做字符边界,和单引号'的效果是一样样的。
LongRui888 2013-11-15
  • 打赏
  • 举报
回复
默认是off的,这个可以通过如下的语句,来查询:
--0表示off,1表示on
select name,is_quoted_identifier_on
from sys.databases
设为ON:标识符可以用双引号分隔,而字符串还是用过单引号来分隔的:
SET QUOTED_IDENTIFIER on
go

create table "table"(a int)
  • 打赏
  • 举报
回复
我复制联机丛书的,说明的听清楚吧。
  • 打赏
  • 举报
回复
A. 使用加引号的标识符设置和保留字对象名 以下示例显示 SET QUOTED_IDENTIFIER 设置必须为 ON,而且表名内的关键字必须在双引号内,才能创建和使用具有保留关键字名称的对象。 复制代码 SET QUOTED_IDENTIFIER OFF GO -- An attempt to create a table with a reserved keyword as a name -- should fail. CREATE TABLE "select" ("identity" INT IDENTITY NOT NULL, "order" INT NOT NULL); GO SET QUOTED_IDENTIFIER ON; GO -- Will succeed. CREATE TABLE "select" ("identity" INT IDENTITY NOT NULL, "order" INT NOT NULL); GO SELECT "identity","order" FROM "select" ORDER BY "order"; GO DROP TABLE "SELECT"; GO SET QUOTED_IDENTIFIER OFF; GO

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧