quoted_identifier

吉云

今儿跟大家唠唠这个叫quoted_identifier的玩意儿,一开始我也没整明白这东西是干啥的。那天我正埋头写代码,突然就碰到一个特诡异的问题,折腾我好久!

事情是这样的,那天我不是在搞一个数据库嘛用的是SQL Server。我寻思着创建一个表,结果,老是创建不成功,还给我报个错,说什么“因为下列 SET 选项的设置不正确: 'QUOTED_IDENTIFIER'”。我当时就懵,这啥玩意儿?之前也没碰见过!

quoted_identifier

于是乎,我就开始各种百度,各种搜,总算是找到一些蛛丝马迹。原来,这个quoted_identifier是一个数据库的选项,它管的是你在查询的时候能不能用引号把那些标识符给括起来。标识符你懂?就是那些表名,列名之类的。

那么问题来,啥时候该用它,啥时候又不该用它?

  • 当我把这个quoted_identifier设置为ON的时候,我就可以用双引号把那些标识符给括起来。比如说,我有一个表,名字叫"select",这是一个SQL Server里面的保留关键字,正常情况下你直接用它做表名是不行的。但是!如果我把quoted_identifier设置成ON,那我就可以写成CREATE TABLE "select",这样就没问题,SQL Server就能认。
  • 那如果我把它设置成OFF?那就表示我不能用双引号,只能用方括号来括那些标识符,或者干脆啥也不用。还是刚才那个例子,如果quoted_identifier是OFF,那我就得写成CREATE TABLE [select]或者干脆不加括号。如果加双引号,就会报错。

然后我还发现,这玩意儿不光是创建表的时候会碰到,我在尝试改动索引的时候也遇到类似的问题。当时也是报个错,说“ALTER INDEX 失败,因为以下 SET 选项的设置不正确:'QUOTED_IDENTIFIER'”。后来我一查,发现也是因为这个设置的问题。

怎么设置quoted_identifier?

很简单,就用SET QUOTED_IDENTIFIER ON或者SET QUOTED_IDENTIFIER OFF就行。你想打开它就用ON,想关掉它就用OFF,就这么简单。

经过这么一番折腾,我总算是把这个问题给解决。所以说,遇到问题不要慌,多查查资料,总能找到解决办法的。今天就跟大家分享到这里,希望对你们有所帮助!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]