存储过程中的简单事务处理---SQLServer2005系列

. 添加记录

   需要事务支持,如果上下文环境中不存在事务,新启动一个事务,否则利用已存在的事务.

-- =============================================

-- Author:         <Author,,Name>

-- Create date: <Create Date,,>

-- Description:    <Description,,>

-- =============================================

CREATE PROCEDURE [dbo].[AddJob]

     @jobName nvarchar(50),

     @added bit output

AS

BEGIN

     -- SET NOCOUNT ON added to prevent extra result sets from

     -- interfering with SELECT statements.

     SET NOCOUNT ON;

 

    DECLARE @errorCode int

    SET @errorCode = 0

 

    --Transaction identity. 1:Created a new transaction. 0:Use old transaction.

    DECLARE @tranStarted bit

    SET @tranStarted = 0

 

    --Create a new transaction if there is not a transaction.

    IF( @@TRANCOUNT = 0 )

    BEGIN

        BEGIN TRANSACTION

        SET @tranStarted = 1

    END

    ELSE

        SET @tranStarted = 0

 

    --Adding operation.

    INSERT INTO dbo.Job(JobName)

         VALUES (@jobName)

 

    IF ( @@ERROR <> 0 )

    BEGIN

        SET @errorCode = -1

        GOTO Cleanup

    END

 

    IF ( @tranStarted = 1 )

    BEGIN

        SET @tranStarted = 0

        COMMIT TRANSACTION

    END

   

    SET @added = 1

    RETURN(0)

 

 --Error handler.

 Cleanup:

    IF( @tranStarted = 1 )

    BEGIN

        SET @tranStarted = 0

        ROLLBACK TRANSACTION

    END

 

    SET @added = 0

    RETURN @errorCode  

END

. 删除记录(同上)

   需要事务支持,如果上下文环境中不存在事务,新启动一个事务,否则利用已存在的事务.

. 修改记录(同上)

   需要事务支持,如果上下文环境中不存在事务,新启动一个事务,否则利用已存在的事务.

四. 查询记录
   不需要事务支持.
-- =============================================
-- Author:         <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[GetAllJob]
AS
BEGIN
     -- SET NOCOUNT ON added to prevent extra result sets from
     -- interfering with SELECT statements.
     SET NOCOUNT ON;
   
    SELECT JobId, JobName
    FROM Job
END
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值