SET QUOTED_IDENTIFIER OFF 的作用是什么?

up369 2013-11-15 03:03:20
SET QUOTED_IDENTIFIER OFF 的作用是什么
默认是on 还是 off
如果设成off会有什么影响?
...全文
358 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Landa_Peter 2013-11-20
  • 打赏
  • 举报
回复
当在数据库中新建一个名字是USER的表的时候,常常会带来一些麻烦,因为USER是SQL中的关键字,但是上面的几个语句不会报错。再说一个概念:标示符是SQL中的中括号[]。   当SET QUOTED_IDENTIFIER值为ON时,双引号内的字符被当作是数据库对象。就是说双引号" "和标识符[]效果是一样样的,他们都表示引用的字符是数据库对象。单引号'表示字符串的边界。   当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的。就是说双引号"不能当做标识符使用,但是可以当做字符边界,和单引号'的效果是一样样的。
  • 打赏
  • 举报
回复
默认是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
USE [master] GO /****** 对象: Database [MyHotel] 脚本日期: 02/16/2007 13:17:36 ******/ CREATE DATABASE [MyHotel] ON PRIMARY ( NAME = N'MyHotel_dat', FILENAME = N'G:\Program Files\Microsoft SQL Server\MSSQL.1 \MSSQL\Data\MyHotel.mdf' , SIZE = 2560KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON ( NAME = N'MyHotel_log', FILENAME = N'G:\Program Files\Microsoft SQL Server\MSSQL.1 \MSSQL\Data\MyHotel_log.LDF' , SIZE = 5184KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS GO EXEC dbo.sp_dbcmptlevel @dbname=N'MyHotel', @new_cmptlevel=90 GO IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin EXEC [MyHotel].[dbo]. [sp_fulltext_database] @action = 'enable' end GO ALTER DATABASE [MyHotel] SET ANSI_NULL_DEFAULT OFF GO ALTER DATABASE [MyHotel] SET ANSI_NULLS OFF GO ALTER DATABASE [MyHotel] SET ANSI_PADDING OFF GO ALTER DATABASE [MyHotel] SET ANSI_WARNINGS OFF GO ALTER DATABASE [MyHotel] SET ARITHABORT OFF GO ALTER DATABASE [MyHotel] SET AUTO_CLOSE OFF GO ALTER DATABASE [MyHotel] SET AUTO_CREATE_STATISTICS ON GO ALTER DATABASE [MyHotel] SET AUTO_SHRINK OFF GO ALTER DATABASE [MyHotel] SET AUTO_UPDATE_STATISTICS ON GO ALTER DATABASE [MyHotel] SET CURSOR_CLOSE_ON_COMMIT OFF GO ALTER DATABASE [MyHotel] SET CURSOR_DEFAULT GLOBAL GO ALTER DATABASE [MyHotel] SET CONCAT_NULL_YIELDS_NULL OFF GO ALTER DATABASE [MyHotel] SET NUMERIC_ROUNDABORT OFF GO ALTER DATABASE [MyHotel] SET QUOTED_IDENTIFIER OFF GO ALTER DATABASE [MyHotel] SET RECURSIVE_TRIGGERS OFF GO ALTER DATABASE [MyHotel] SET ENABLE_BROKER GO ALTER DATABASE [MyHotel] SET AUTO_UPDATE_STATISTICS_ASYNC OFF GO ALTER DATABASE [MyHotel] SET DATE_CORRELATION_OPTIMIZATION OFF GO ALTER DATABASE [MyHotel] SET TRUSTWORTHY OFF GO ALTER DATABASE [MyHotel] SET ALLOW_SNAPSHOT_ISOLATION OFF GO ALTER DATABASE [MyHotel] SET PARAMETERIZATION SIMPLE GO ALTER DATABASE [MyHotel] SET READ_WRITE GO ALTER DATABASE [MyHotel] SET RECOVERY FULL GO ALTER DATABASE [MyHotel] SET MULTI_USER GO ALTER DATABASE [MyHotel] SET PAGE_VERIFY CHECKSUM GO ALTER DATABASE [MyHotel] SET DB_CHAI

34,576

社区成员

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

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