sqlserver中常用的四个选项(NOCOUNT/ANSI_NULLS/QUOTED_IDENTIFIER/ XACT_ABORT)
1 NOCOUNT选项
当 SET NOCOUNT 为 ON 时,不返回计数。
当 SET NOCOUNT 为 OFF 时,返回计数。
eg:
if object_id(N'table_test',N'U') IS not null
drop table table_test
go
CREATE TABLE table_test(id INT,name VARCHAR(50))
go
INSERT INTO table_test VALUES(1,'xiaoming'),(2,null)
go SET NOCOUNT ON
SELECT * FROM table_test
GO
SET NOCOUNT OFF
SELECT * FROM table_test
GO
2 ANSI_NULLS 选项
SQL92 ANSI/ISO(简称SQL-92)标准要求对空值(NULL)的等于 (=) 或不等于 (<>) 比较取值都为 FALSE。
当 SET ANSI_NULLS 为 ON 时,表示SQL语句遵循SQL-92标准。
字段(column_name) 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。
当 SET ANSI_NULLS 为 OFF 时,表示不遵从 SQL-92 标准。
使用 WHERE column_name = NULL 的 SELECT 语句返回
column_name 中包含空值的行。
eg:
SET ANSI_NULLS ON
SELECT TOP 100 * FROM table_test WHERE name = NULL
GO
SET ANSI_NULLS OFF
SELECT TOP 100 * FROM table_test WHERE name = NULL
GO
3 QUOTED_IDENTIFIER选项(引用标识符)
数据库对象的名称即为其标识符。Microsoft SQL Server 中的所有内容都可以有标识符。服务器、数据库和数据库对象(例如表、视图、列、索引、触发器、过程、约束及规则等)都可以有标识符。
当 SET QUOTED_IDENTIFIER 为 ON 时,
标识符可以由双引号或者”[ ]”分隔,而文字必须由单引号分隔。
当 SET QUOTED_IDENTIFIER 为 OFF 时,
标识符不可加引号,且必须符合所有 Transact-SQL (微软对SQL的扩展)标识符规则。
SET QUOTED_IDENTIFIER OFF
GO
CREATE TABLE "select" ("identity" INT IDENTITY NOT NULL, "order" INT NOT NULL);
GO
SET QUOTED_IDENTIFIER ON;
GO
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
4 XACT_ABORT选项
指定当 Transact-SQL 语句出现运行时错误时,SQL Server 是否自动回滚到当前事务。
当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。
当 SET XACT_ABORT 为 OFF 时,有时只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。如果错误很严重,那么即使 SET XACT_ABORT 为 OFF,也可能回滚整个事务。OFF 是默认设置。
IF OBJECT_ID(N'demo',N'U') IS NOT NULL
DROP TABLE demo
create table demo(id int not null)
go
--set xact_abort on
begin tran
insert into demo values (1)
insert into demo values (null)
insert into demo values (2)
commit tran
go
--set xact_abort off
Select * from demo
sqlserver中常用的四个选项(NOCOUNT/ANSI_NULLS/QUOTED_IDENTIFIER/ XACT_ABORT)的更多相关文章
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临” 在网页中弹出框输入1 网页输出“查询中……” 在 ...
- Java中常用的四种线程池
在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章Java线程池构造参数详解.不过,在Executors类中,为我们提供了常用线程 ...
- sqlserver中常用的全局变量
变量 Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量.局部变量 局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部.局部 ...
- iOS中常用的四种数据持久化技术
iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...
- SQLserver中常用的函数及实例
聚合函数 as是可以起别名的,在select和from之间的是表示列名,可以不加单引号)(聚合函数中的count不仅能对数字进行操作还能对字符型进行操作,其余的只能对数字操作) 最小值 select ...
- sqlserver中数据的四种插入方式
1.insert into stuInfo(name,stuId) values('李洁','19291727')insert into stuInfo(name,stuId) values('李康' ...
- SQLSERVER中常用的系统视图
QLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer20 ...
- sqlserver中常用的windows命令行的操作
1.删除指定目录下指定时间之前的文件: ), ), @sqltxtdel varchar(max) --指定的删除时间 set @deldate= '-8' --指定的删除路径 set @bakpat ...
随机推荐
- kafka+windows+java+springboot中的配置
1.百度kafka+zookeeper+windows配置 1.1 zookeeper配置 dataDir=/tmp/zookeeper # the port at which the client ...
- Axios & Interceptors & Serialization & CORS & cookie
Axios https://github.com/axios/axios#config-defaults Global axios defaults axios.defaults.baseURL = ...
- 第十三篇:HTML
本篇内容 选择器 属性 一. 选择器 1.id 选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. id 选择器以 "#" 来定义. <!DOCTY ...
- 【Luogu】P4103大工程(虚树DP)
题目链接 我貌似发现这类DP就是先别管什么虚树……把树形DP搞出来套上虚树板子就好了 这个树形DP就是设sum为答案,sumd为子树内所有点的深度和(当然指的是被询问的点),maxi指子树内最深的点的 ...
- Crash的游戏 [组合+递推]
题面 思路 问题转化 这个问题的核心在于,我们需要把"加入一个球.拿出一个球"这两个操作转化一下 因为显然两个操作同时进行的话,我们没有办法从单纯的组合意义去分析 我们首先把$m$ ...
- 详解Django-auth-ldap 配置方法
使用场景 公司内部使用Django作为后端服务框架的Web服务,当需要使用公司内部搭建的Ldap 或者 Windows 的AD服务器作为Web登录认证系统时,就需要这个Django-auth-ldap ...
- <转自原博客> NOIP2008 传纸条
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们可以 ...
- 如何写出高质量的JavaScript代码
优秀的Stoyan Stefanov在他的新书中(<Javascript Patterns>)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等 ...
- JavaScript的团队编程规范
本规范是针对javascript函数式编程风格与公司严重依赖于jQuery进行编码的现实制定出来. 禁止使用eval,with与caller(ecma262 v5 的use strict要求).eva ...
- cms .net webform去服务器控件标签化 pagebase新版本
这是最近在干一个webform的cms的时候用起来的,原来虽然做过很多技术,什么remoting,wcf,webservice,可是弄来弄去,最后也没个收藏的地儿,全都放在笔记本儿上了,可是人又懒地可 ...