SQL Server重温 事务

 更新时间:2012年08月03日 16:50:22   作者:  
当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚
为什么使用事务
  当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。
显示设置事务
复制代码 代码如下:

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 Server中.BAK 文件损坏的原因及解决方法

    SQL Server中.BAK 文件损坏的原因及解决方法

    在 SQL Server 中,备份通常存储在扩展名为 .BAK 的文件中,当服务器或数据库文件发生事故或问题需要恢复数据时,备份非常有用,但是,SQL 数据库备份 (.BAK) 文件也可能由于各种因素而损坏,本文介绍了SQL Server .BAK 文件损坏的解决方法,需要的朋友可以参考下
    2024-08-08
  • SQL Server2008数据库导入导出兼容性处理方案

    SQL Server2008数据库导入导出兼容性处理方案

    SQL Server 的高版本数据库恢复到低版本则可能会有兼容性问题,下面为大家介绍的是如何解决此类问题
    2014-05-05
  • SQL Server数据库的高性能优化经验总结

    SQL Server数据库的高性能优化经验总结

    小编以前在做ASP及.NET的时候经常用到SQL SERVER,现在用PHP虽然大多数时候用MYSQL,但不泛有些客户要在原来SQL的平台上升级或兼容开发,值得庆幸的是PHP无所不能,基本上所有的数据库它都能连接并支持
    2011-07-07
  • SQLSERVER聚集索引和主键(Primary Key)的误区认识

    SQLSERVER聚集索引和主键(Primary Key)的误区认识

    很多人会把Primary Key和聚集索引搞混起来,或者认为这是同一个东西。这个概念是非常错误的,本文将带你理清思路,感兴趣的你可不要错过了哈,或许本文对你有所帮助
    2013-02-02
  • Linux安装ODBC连接SQLServer数据库的步骤

    Linux安装ODBC连接SQLServer数据库的步骤

    这篇文章主要介绍了Linux安装ODBC连接SQLServer数据库 ,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • SQLServer 获得用户最新或前n条订单的几种SQL语句小结

    SQLServer 获得用户最新或前n条订单的几种SQL语句小结

    场景:有一张用户表,一个订单表,要求获得一个用户对应的最新的一条订单信息。
    2011-08-08
  • SQL Server代理服务无法启动的解决方法

    SQL Server代理服务无法启动的解决方法

    错误MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必须能够以 SysAdmin 身份连接到 SQLServer,但“(未知)”不是 SysAdmin 角色的成员)
    2013-02-02
  • SQL Server常见问题及解决方法分享

    SQL Server常见问题及解决方法分享

    这篇文章主要为大家详细介绍了SQL Server常见问题及解决方法,包括SQL Server连接问题,SQL Server日志问题,SQL Server查询很久等问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • sql中的left join及on、where条件关键字的区别详解

    sql中的left join及on、where条件关键字的区别详解

    LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。这篇文章主要介绍了sql中的left join以及on、where关键字的区别,需要的朋友可以参考下
    2018-08-08
  • SQL Function 自定义函数详解

    SQL Function 自定义函数详解

    这篇文章主要介绍了SQL Function 自定义函数详解,需要的朋友可以参考下
    2016-10-10

最新评论