易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL事务处理语句总结

 
存储过程中常用到的SQL事务处理语句格式可能会有如下几种:
第一种:
set   xact_abort   on 
begin   tran 
        insert   ... 
        update   ... 
        delete   ... 
commit   tran
第二种:
set   xact_abort   on 
begin   tran 
        insert   ... 
        if @@error<>0 rollback tran
        update   ... 
        if @@error<>0 rollback tran
        delete   ... 
        if @@error<>0 rollback tran
commit   tran
第三种:
set   xact_abort   on 
begin   tran 
        insert   ... 
        update   ... 
        delete   ... 
if @@error<>0 
rollback  tran
else
commit   tran
第四种:
set   xact_abort   on 
begin   tran 
declare @ErrorSave int
        insert   ... 
        if @@error<>0  set  @ErrorSave=1
        update   ...  
      if @@error<>0  set  @ErrorSave=1
        delete   ... 
      if @@error<>0  set  @ErrorSave=1
if @ErrorSave>0 
rollback  tran
else
commit   tran
使用事务的缺陷:使用多了事务处理,经常会产生死锁现象,特别


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

管理 SQL Server 的事务日志

文章来源:Http://www.simple-talk.com
原文地址:http://www.simple-talk.com/sql/learn-sql-server/managing-transaction-logs-in-sql-server/
原作者:Robert Sheldon
翻译:三晋一枝花
译文原地址:http://prj.souty.cn/Admin/Knowledges/ShowKnowledge.aspx?id=44dbde74-d2c5-41a5-a8e9-375ba7103025
在 SQL Serv ......

oracle比较快的分页sql

 方案1 适用于oracle9i以上!
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
方案2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1  order by msgid desc) A WHERE ROWNUM < ......

sql 简单游标

 在存储过程或触发器中使用 Transact-SQL 游标的典型过程为:
声明 Transact-SQL 变量包含游标返回的数据。为每个结果集列声明一个变量。声明足够大的变量来保存列返回的值,并声明变量的类型为可从列数据类型隐式转换得到的数据类型。
使用 DECLARE CURSOR 语句将 Transact-SQL 游标与 SELECT 语句相关联。另外,D ......

sql 语句 exec 执行字符串

create PROCEDURE [dbo].[AllDnn_NewsPublish_DeleteArticleByArticle]
@ArticleID nvarchar(200)
AS

declare @sql nvarchar(1000)
set @sql='DELETE dbo.Site_News_Article where ArticleID in ('+@ArticleID+')'
exec (@sql)
--[AllDnn_NewsPublish_DeleteArticleByArticle] '50,51' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号