关闭

存储过程中常用语句

标签: 存储数据库sql server引擎insertdelete
601人阅读 评论(0) 收藏 举报
分类:

一、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   语句产生运行时错误时; 是否自动回滚当前事务。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:194394次
    • 积分:2786
    • 等级:
    • 排名:第12881名
    • 原创:96篇
    • 转载:26篇
    • 译文:1篇
    • 评论:21条
    最新评论