`

sql Server中SET QUOTED_IDENTIFIER的使用

    博客分类:
  • sql
阅读更多
在存储过程中经常会有


SET QUOTED_IDENTIFIER on
SET QUOTED_IDENTIFIER off


这样的语句,那么SET QUOTED_IDENTIFIER到底是什么意思,有什么用呢,今天下午仔细的看了一下。

如果SET QUOTED_IDENTIFIER on时,在创建一个表时,如果这个表的表名,刚好用到了sqlserver的标识符,如下面的情况


create table distinct(
 id int not  null constraint pk_1 primary   key,
 value varchar(255),
 flag int
)

上面的语句运行是会出错的,不管SET QUOTED_IDENTIFIER为on还是off,会提示  在关键字 'distinct' 附近有语法错误。

那是因为distinct是sqlserver的标识符,如果想以distinct为表时,在QUOTED_IDENTIFIER为off的情况下,是不能创建表名为distinct的表的,因为在QUOTED_IDENTIFIER为off情况下,sqlserver的标识符是不允许加引号的,所以在
SET QUOTED_IDENTIFIER  off的情况下,不管distinct加引号或不加引号或加双引号都是不可以的。

但是在 SET QUOTED_IDENTIFIER on 的情况下是可以把sqlserver的标识符加上双引号来创建以sqlserver标识符为表名的表,但是加单引号也是不可以的。
create table "distinct"(
 id int not  null constraint pk_1 primary   key,
 value varchar(255),
 flag int
)

可以运行

create table ‘distinct’(
 id int not  null constraint pk_1 primary   key,
 value varchar(255),
 flag int
)

不可以运行

分享到:
评论

相关推荐

    SQL_SET.rar_SetSQL_sql_sql set _sql set connectattr_sql set rouc

    在SQL Server中,`sp_configure`存储过程可以更改服务器级别的配置,而`SET`命令通常用于会话级别的设置。 4. **SQL SET Rowcount**:`SET ROWCOUNT`是用来控制一个查询返回的最大行数。当你想要限制查询结果的数量...

    SQL SERVER 双引号问题处理

    3. **双引号的启用与限制**:为了能够在 SQL Server 中使用双引号界定字符串,需要开启 `QUOTED_IDENTIFIER` 选项。但是,默认情况下,该选项是关闭的。这意味着,在未明确设置的情况下,双引号会被视为普通字符处理...

    BPEL调用SQLServer数据库存储过程文档

    本文档将详细介绍如何在BPEL中调用SQL Server数据库的存储过程,帮助开发者实现数据交互。 ### 一、环境准备 1. **创建数据库表** - 使用SQL脚本创建名为`Book`的表,包含`id`、`name`和`password`三列。 ```sql...

    SQL Server 行专列存储过程

    `quoted_identifier on` 则允许在查询中使用引号标识符。 - **存储过程的定义**: - `alter procedure [dbo].[up_get_activity_list]`:这里使用了 `alter procedure` 来修改现有的存储过程 `up_get_activity_...

    sqlserver存储过程

    当ODBC应用程序连接到SQL Server时,会自动设置一系列会话选项,包括`SET QUOTED_IDENTIFIER ON`、`SET TEXTSIZE`等,以提高应用程序的可移植性。为了确保存储过程在不同设置下都能正确运行,应当在存储过程开始处...

    Sql Server 时间格式转换函数

    整理了一下SQL Server里面可能经常会用到的日期格式转换方法,整合一个函数来处理。 调用: select dbo.func_Print_DateFormat('yyyy-MM-dd',getdate...SET QUOTED_IDENTIFIER ON GO /* 日期格式处理 日期:2015-8-28 1

    SQL server的触发器编程

    对于通过ODBC接口与SQL Server连接的程序来说,服务器会自动设置一系列的会话选项,例如SET QUOTED_IDENTIFIER ON、SET TEXTSIZE ***、SET ANSI_DEFAULTS ON、SET CURSOR_CLOSE_ON_COMMIT OFF 和 SET IMPLICIT_...

    sql 在更新某字段后写入日志触发器

    本篇文章将详细介绍如何在SQL Server中创建一个触发器,当某个表中的特定字段被更新时,记录相关信息到另一个表中,以实现类似日志记录的功能。 #### 触发器概述 触发器是SQL Server提供的一种机制,可以在表或视图...

    宾馆信息管理系统基于C#和SQL2000

    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_...

    SQL Server存储过程之嵌套游标

    set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[CancelOrderBySystem] AS BEGIN declare /*声明变量*/ @Status varchar(100), –状态 @TimeNow datetime, –当前时间 @TradeID varchar(50), ...

    SQL SERVER备份数据库存储过程的方法

    sqlserver批量导出存储过程 在查询分析器中,选中数据库——》右键“任务”——》在弹出菜单中选择...set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[dbBak] AS BEGIN DECLARE @sqlCommand NVARCHAR(1000)

    在sql Server自定义一个用户定义星期函数

    文件:.wmv;大小:19,535KB;长度:00:26:39。... 就此bug对此函数修改如下: 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[udf_Week] ( @StartYear INT, @EndYear

    用sql脚本创建sqlserver数据库触发器范例语句

    在SQL Server中,数据库触发器是一种特殊的存储过程,它在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以帮助我们实现复杂的业务规则,比如在数据更改时进行额外的验证、记录日志或者联动...

    查看SQL-SERVER数据库及各个表的数据量及占用空间大小

    1、查看某个数据库,直接执行存储过程sp_...SET QUOTED_IDENTIFIER ON GO -- ============================================= -- 说明:更新查询数据库中各表的大小,结果存储到数据表中 -- ====================

    汽车维修保养管理系统

    exec sp_dboption N'My_vehicle', N'quoted identifier', N'false' GO exec sp_dboption N'My_vehicle', N'ANSI warnings', N'false' GO exec sp_dboption N'My_vehicle', N'auto create statistics', N'true' GO ...

    易买网sql数据库,下载的需要下载数据库

    - `SET QUOTED_IDENTIFIER OFF`: 关闭引用标识符。 - `SET RECURSIVE_TRIGGERS OFF`: 关闭递归触发器。 - `SET DISABLE_BROKER`: 关闭Broker服务。 - `SET AUTO_UPDATE_STATISTICS_ASYNC OFF`: 关闭异步更新统计信息...

Global site tag (gtag.js) - Google Analytics