存储过程中常用语句

原创 2011年01月21日 14:54:00

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

【数据库】如何调试sql语句、存储过程——PLSQL、VS

一直以来,我总是在sql的工具,比如sql server、navicat等中执行sql语句来发现问题自己写的sql中的问题,结果被问起时,让人贻笑大方!         那么如何调试成白行的存储过程?...
  • u013047824
  • u013047824
  • 2016年05月27日 11:28
  • 2460

存储过程中执行动态Sql语句

MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就...
  • CsethCRM
  • CsethCRM
  • 2014年03月04日 18:21
  • 2833

在动态SQL语句中调用存储过程

当我们碰到有一类存储名称和过程的参数上都相似时,可以使用execute immediate来动态执行这些存储过程,在这次的项目中我有一类用“P_InsertInto_”开头的存储过程,后面是表名如:P...
  • idebian
  • idebian
  • 2013年03月20日 14:30
  • 6266

存储过程中怎么动态执行sql语句

  • 2011年12月22日 22:19
  • 1KB
  • 下载

存储过程中执行动态Sql语句

SQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利...
  • willdehao
  • willdehao
  • 2012年08月02日 09:02
  • 458

解决存储过程中SQL字符串语句执行引入参数的问题

最近在写存储过程的时候,发现一个问题,是关于存储过程中字符串SQL中引入参数的问题。 且看下例: declare @count int select @count=count(*) from ...
  • chamychen
  • chamychen
  • 2013年05月17日 10:27
  • 4081

Oracle 存储过程中的循环语句写法

资料来源:http://liliangjie.iteye.com/blog/812771 首先科普一下:  oracle 游标属性 sql%found sql%notfound sql%row...
  • ying890
  • ying890
  • 2016年05月23日 20:30
  • 4604

存储过程中执行动态Sql语句

存储过程中执行动态Sql语句   MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接...
  • itkeyuan
  • itkeyuan
  • 2016年05月03日 00:15
  • 628

SQL中存储过程中SQL语句的单引号和双引号问题

1)是连接运算符,它可以将两个字符串连接成一个字符串。如          a="abc" & "def" 执行连接运算后,a="abcdef"。再如          a="abc" & temp ...
  • Hello_Big_Cat
  • Hello_Big_Cat
  • 2011年03月06日 07:18
  • 846

提问 ora 06546 DDL 语句在非法的上下文中执行 EXECUTE IMMEDIATE 在存储过程中

我写了个创建表和自动创建列的存储过程。。。表明和列的组合字符串外围传入。。如下 procedure pro_createtable (  tname NVARCHAR2,  tCnames N...
  • sunseaChen
  • sunseaChen
  • 2012年04月21日 17:12
  • 1132
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:存储过程中常用语句
举报原因:
原因补充:

(最多只允许输入30个字)