在存储过程中经常会有
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 Server中,`sp_configure`存储过程可以更改服务器级别的配置,而`SET`命令通常用于会话级别的设置。 4. **SQL SET Rowcount**:`SET ROWCOUNT`是用来控制一个查询返回的最大行数。当你想要限制查询结果的数量...
3. **双引号的启用与限制**:为了能够在 SQL Server 中使用双引号界定字符串,需要开启 `QUOTED_IDENTIFIER` 选项。但是,默认情况下,该选项是关闭的。这意味着,在未明确设置的情况下,双引号会被视为普通字符处理...
本文档将详细介绍如何在BPEL中调用SQL Server数据库的存储过程,帮助开发者实现数据交互。 ### 一、环境准备 1. **创建数据库表** - 使用SQL脚本创建名为`Book`的表,包含`id`、`name`和`password`三列。 ```sql...
`quoted_identifier on` 则允许在查询中使用引号标识符。 - **存储过程的定义**: - `alter procedure [dbo].[up_get_activity_list]`:这里使用了 `alter procedure` 来修改现有的存储过程 `up_get_activity_...
当ODBC应用程序连接到SQL Server时,会自动设置一系列会话选项,包括`SET QUOTED_IDENTIFIER ON`、`SET TEXTSIZE`等,以提高应用程序的可移植性。为了确保存储过程在不同设置下都能正确运行,应当在存储过程开始处...
整理了一下SQL Server里面可能经常会用到的日期格式转换方法,整合一个函数来处理。 调用: select dbo.func_Print_DateFormat('yyyy-MM-dd',getdate...SET QUOTED_IDENTIFIER ON GO /* 日期格式处理 日期:2015-8-28 1
对于通过ODBC接口与SQL Server连接的程序来说,服务器会自动设置一系列的会话选项,例如SET QUOTED_IDENTIFIER ON、SET TEXTSIZE ***、SET ANSI_DEFAULTS ON、SET CURSOR_CLOSE_ON_COMMIT OFF 和 SET IMPLICIT_...
本篇文章将详细介绍如何在SQL Server中创建一个触发器,当某个表中的特定字段被更新时,记录相关信息到另一个表中,以实现类似日志记录的功能。 #### 触发器概述 触发器是SQL Server提供的一种机制,可以在表或视图...
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_...
set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[CancelOrderBySystem] AS BEGIN declare /*声明变量*/ @Status varchar(100), –状态 @TimeNow datetime, –当前时间 @TradeID varchar(50), ...
sqlserver批量导出存储过程 在查询分析器中,选中数据库——》右键“任务”——》在弹出菜单中选择...set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[dbBak] AS BEGIN DECLARE @sqlCommand NVARCHAR(1000)
文件:.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 Server中,数据库触发器是一种特殊的存储过程,它在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以帮助我们实现复杂的业务规则,比如在数据更改时进行额外的验证、记录日志或者联动...
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 ...
- `SET QUOTED_IDENTIFIER OFF`: 关闭引用标识符。 - `SET RECURSIVE_TRIGGERS OFF`: 关闭递归触发器。 - `SET DISABLE_BROKER`: 关闭Broker服务。 - `SET AUTO_UPDATE_STATISTICS_ASYNC OFF`: 关闭异步更新统计信息...