SQL Server重温 事务

来源:asp之家 时间:2012-08-21 10:48:15 

为什么使用事务
  当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。
显示设置事务 

代码如下:


begin try
begin transaction
insert into shiwu (asd) values ('aasdasda');
commit transaction
end try
begin catch
select ERROR_NUMBER() as errornumber
rollback transaction
end catch


隐式设置事务 

代码如下:


set implicit_transactions on; -- 启动隐式事务
go
begin try
insert into shiwu (asd) values ('aasdasda');
insert into shiwu (asd) values ('aasdasda');
commit transaction;
end try
begin catch
select ERROR_NUMBER() as errornumber
rollback transaction; --回滚事务
end catch
set implicit_transactions off; --关闭隐式事务
go


显示事务以下语句不能使用,隐式事务可以 

代码如下:


alter database;
backup;
create database;
drop database;
reconfigure;
restore;
update statistics;


显示事务可以嵌套使用

代码如下:


--创建存储过程
create procedure qiantaoProc
@asd nchar(10)
as
begin
begin try
begin transaction innerTrans
save transaction savepoint --创建事务保存点
insert into shiwu (asd) values (@asd);
commit transaction innerTrans
end try
begin catch
rollback transaction savepoint --回滚到保存点
commit transaction innerTrans
end catch
end
go
begin transaction outrans
exec qiantaoProc 'asdasd';
rollback transaction outrans


事务嵌套,回滚外层事务时,如果嵌套内的事务已经回滚过则会有异常。此时需要使用事务保存点。如上代码。

标签:事务,sql
0
投稿

猜你喜欢

  • 实例简析XPath串函数和XSLT

    2008-09-04 14:16:00
  • ASP如何获取通过代理的真实IP地址

    2007-09-20 13:11:00
  • 像数艺术

    2010-02-08 12:33:00
  • 何时将数据装载到Application 或 Session 对象中去?

    2009-12-03 20:17:00
  • 数据库大战: MS SQL Server & IBM DB2

    2009-08-25 16:24:00
  • 解决 IE6 内存泄露的另类方法

    2008-07-06 23:05:00
  • MySQL高级查询方法之记录查询

    2010-06-20 14:48:00
  • asp如何对用户进行授权?

    2009-11-20 18:46:00
  • asp禁止站外盗链、判断星期几方法

    2007-10-02 12:58:00
  • 聚族索引、非聚族索引、组合索引的含义和用途

    2010-07-02 21:51:00
  • 你是真正的用户体验设计者吗? Ⅲ

    2008-03-27 09:04:00
  • 数据库自动化技术弥补数据库DBA短缺难题

    2009-02-04 16:53:00
  • 如何在页面中对不同的数据进行相同的处理?

    2010-06-26 12:30:00
  • 飞扬远程获取类Asp xmlHttp 源码

    2010-04-03 20:37:00
  • Javascript学习第一季 二

    2008-06-24 18:20:00
  • 不同情况下修复Access数据库的实用方法

    2008-11-28 16:18:00
  • 用户研究中的人物角色

    2010-02-08 12:15:00
  • 13个超酷的js显示时间效果

    2007-08-30 09:52:00
  • SQLServer 2005中如何列所有存储过程

    2008-11-24 17:39:00
  • 动态给表添加删除字段并同时修改它的插入更新存储过程

    2011-12-01 10:18:28
  • asp之家 网络编程 m.aspxhome.com