SET ANSI_NULLS ON
Transact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE。 通过设置 ANSI_NULLS OFF 可将此选项激活。
当 ANSI_NULLS 为 OFF 时,
如果 ColumnA 包含 Null 值,则 ColumnA = NULL 之类的比较操作会返回 TRUE;
如果 ColumnA 除了包含 NULL 外还包含某些值,则这类比较操作将返回 FALSE。
比较计算结果为 NULL 的两个表达式也会返回 TRUE。 ANSI_NULLS 设置不影响包含 NULL 的联接列。联接列中包含 NULL 的行不是结果集的一部分。 当 ANSI_NULLS 设置为 OFF 时,以下 SELECT 语句返回 Customer 表中 Region 为 Null 值的所有行: 复制代码
SELECT CustomerID, AccountNumber, TerritoryID
FROM AdventureWorks.Sales.Customer
WHERE TerritoryID = NULL 如果 SET ANSI_NULLS ON
那么 SQL 语句中, 判断 非空的写法, 要修改为:
WHERE 字段 IS NULL 因为 SET ANSI_NULLS ON 以后,
NULL = NULL 将 返回 false.

SET NOCOUNT ON

在存储过程中,经常用到SET NOCOUNT ON;

作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。
当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数;

即使当SET NOCOUNT ON 时候,也更新@@RowCount;

当SET NOCOUNT on时候,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能;

SET NOCOUNT 指定的设置时在执行或运行时候生效,分析时候不生效。

 USE Northwind
GO
SET NOCOUNT OFF;
SELECT TOP OrderDate FROM Orders
5GO

结果集显示:

 SET NOCOUNT ON;
SELECT TOP OrderDate FROM Orders
GO



在存储过程中经常会有 

  1. SET QUOTED_IDENTIFIER on
  2. SET QUOTED_IDENTIFIER off


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

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

  1. create table distinct(
  2. id int not  null constraint pk_1 primary   key,
  3. value varchar(255),
  4. flag int
  5. )


上面的语句运行是会出错的,不管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标识符为表名的表,但是加单引号也是不可以的。 
  1. create table "distinct"(
  2. id int not  null constraint pk_1 primary   key,
  3. value varchar(255),
  4. flag int
  5. )


可以运行 
  1. create table ‘distinct’(
  2. id int not  null constraint pk_1 primary   key,
  3. value varchar(255),
  4. flag int
  5. )


不可以运行 

最新文章

  1. perl学习之路2
  2. 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础
  3. 分割excel sheet
  4. 火狐 about:config
  5. Robot Framework自动化测试(四)--- 分层思想
  6. 风清杨之Oracle的安装与说明
  7. net IL的一些探索
  8. 今天开始应该使用 5 个JavaScript调试技巧
  9. POJ2689 - Prime Distance(素数筛选)
  10. HTML 5 全局属性和事件属性
  11. requireJS配置选项
  12. (转)利用JConsole工具监控java程序内存和JVM
  13. Leetcode刷题C#版之 Length of Last Word
  14. Django中的信号
  15. 《Python量化交易教程》第一部分新手入门 第1天:谁来给我讲讲Python?
  16. Python3学习之路~6.3 类变量 VS 实例变量
  17. 基于py3和pymysql查询某时间段的数据
  18. android AlertDialog设置点击button不退出(转)
  19. Linux Shell 通配符、元字符、转义符使用实例介绍
  20. 统一登录中心SSO 单点登录系统的构想

热门文章

  1. 【JUC源码解析】SynchronousQueue
  2. UWP 卡片视图 Card View
  3. jQuery插件编写基础之“又见弹窗”
  4. Kali Linux 下安装中文版输入法
  5. Vue实例 中的常用配置项
  6. eclipse生成ant build.xml打war包
  7. 关于jQuery Form Plugin使用心得
  8. Tree - AdaBoost with sklearn source code
  9. Homebrew1.5之后安装PHP和扩展
  10. Tomcat ngxin 反向代理