一、set nocount on
当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。
当 SET NOCOUNT 为 OFF 时,返回计数。
1、为on时,也更新@@rowcount函数
2、为on时,select,insert,update,delete结束时将不会在查询结果中显示"nn rows affected"
3、为on时,如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著
提高性能
4、为on时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息
二、set transaction isolation level read uncommitted
解释:指定语句不能读取已由其他事务修改但尚未提交的数据。这样可以避免脏读。其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和幻像数据。该选项是 SQL Server 的默认设置。
1、READ COMMITTED 的行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:
2、如果将 READ_COMMITTED_SNAPSHOT 设置为 OFF(默认设置),则数据库引擎 会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。语句完成后便会释放共享锁。
3、如果将 READ_COMMITTED_SNAPSHOT 设置为 ON,则数据库引擎 会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在。不使用锁来防止其他事务更新数据。
4、当 READ_COMMITTED_SNAPSHOT 数据库选项设置为 ON 时,您可以使用 READCOMMITTEDLOCK 表提示为 READ_COMMITTED 隔离级别上运行的事务中的各语句请求共享锁,而不是行版本控制。
三、set xact_abort on
指定当 Transact-SQL 语句产生运行时错误时; 是否自动回滚当前事务。