---- Tran 事务 以及 Goto 的浅显应用 IF OBJECT_ID('tempdb..#tmptab','U') IS NOT NULL DROP TABLE #tmptab GO CREATE TABLE #tmptab (id int IDENTITY(1,1),name VARCHAR(10),bankMoney MONEY) GO INSERT INTO #tmptab(name,bankMoney) SELECT 'Jack',100 UNION SELECT 'Frank…
begin try begin tran tran_addresource -- 标记事务的开始 delete rp insert into Cube.ResourcePool(ResourceType, ResourceID, Created) if begin exec end commit tran tran_addresource end try begin catch rollback tran tran_addresource;throwend catchselect 1 as Re…
在 Transact-SQL 中使用 TRY...CATCH (注:本文来自于 http://msdn.microsoft.com/zh-cn/library/ms179296.aspx)             SQL Server 2008 R2      Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理,此功能类似于 Microsoft Visual C++ 和 Microsoft Visual C# 语言的异常处理功能.TRY…CATCH 构造包括两部分:一个…
本节主要介绍Sql语句,SqlTransaction和TransactionScope这三种使用事务的方法.       本节的所有例子都在sql server 2008和vs 2008环境下运行通过,如果没有sql server2008,那么使用sql server 2005也一样,但是sql se rver 2000上是无法运行通过的,因为某些sql语句在2000中不支持.请大家注意这点. 请先执行下面的脚本,在本机的数据库实例中建立测试数据库,以方便运行例子. --建库    IF EXI…
SQL Server 在生产环境中这样写存储过程的坑都避免了吗? 原文链接: http://www.cnblogs.com/chenmh/p/7856777.html 概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章能给大家一些参考:文章内容有点长还望耐心阅读. 1.插入测试数据 ----创建表 DROP TABLE score GO CREAT…
一.事务控制 BEGIN TRY BEGIN TRAN; DECLARE @aaa NVARCHAR(MAX); SET @aaa = 9 / 0; COMMIT TRAN;END TRYBEGIN CATCH --[错误]-- DECLARE @ErrorMessage NVARCHAR(MAX) , @ErrorSeverity INT , @ErrorState INT , @exception NVARCHAR(255); SELECT @ErrorMessage = ERROR_MES…
一.事务控制与Try Catch结合 当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚. 当 SET XACT_ABORT 为 OFF 时,有时只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理. 如果错误很严重,那么即使 SET XACT_ABORT 为 OFF,也可能回滚整个事务. OFF 是默认设置. BEGIN TRY BEGIN TRAN;DECLARE @aaa NVARCHAR(MAX…
用于数据库抛出具体异常信息给程序,示例:BEGIN TRY    /*    RAISERROR ('Error raised in TRY block.', -- Message text.            16, -- Severity.            1 -- State.           );    */    DECLARE @x INT=9;    DECLARE @y INT =0;        SELECT @x/@y;END TRYBEGIN CATCH  …
测试注意 :①假如系统能捕获异常 ,并且我们自己开启了事务.系统会自动 回滚事务的,但是 我们还是要在catch里面加上 rollback tran的习惯,这样也不会提示重复rollback的错误,这样是不会报错的..没手动开启事务,系统将正常执行的会保存. ②begin try 语句1,语句2 end try ,假如语句1被捕获到异常,语句2不会执行了.直接跳到 catch执行了.③太严重的错误是直接pass了捕获,不会捕捉异常了.有事务的 还需要我们去手工执行 commit,或rollbac…
Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示提交事务, rollback tran表示回滚事物 EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门' CREATE PROCEDURE [dbo].[TEST_PROC] @A_Name NVARCHAR(20), -- A表姓名 @A_Remark NVARC…