zoukankan      html  css  js  c++  java
  • 存储过程事物级别

             数据库事务是其他事务模型的基础,当一个事务创建时不同数据库系统都有自己的规则。SQL Server默认在自动提交的模式下工作,每个语句执行完后都会立即提交;与此对照的是Oracle需要你包含一个提交语句。但是当一个语句通过OLE DB执行时,它执行完后一个提交动作会被附加上去。例如:

    DECLARE @TranName VARCHAR(20);

    SELECT @TranName = 'MyTransaction';

     

    BEGIN TRANSACTION @TranName;

    GO

    USE AdventureWorks;

    GO

    DELETE FROM AdventureWorks.HumanResources.JobCandidate

        WHERE JobCandidateID = 13;

    GO

     

    COMMIT TRANSACTION MyTransaction;

    GO

    或者:

    CREATE PROCEDURE Tran1 

    as 

    begin tran 

    set xact_abort on

    Insert Into P_Category(CategoryId,Name)values('1','test1') 

    Insert Into P_Category(CategoryId,Name)values('2','test2') 

    commit tran 

    GO

    set xact_abort on表示遇到错误立即回滚。

    当然你也可以这么写:

    CREATE PROCEDURE tran1

    as

    begin tran

    Insert Into P_Category(CategoryId,Name)values('1','test1') 

    if(@@error<>0)

     rollback tran

    else

     begin

      Insert Into P_Category(CategoryId,Name)values('2','test2')

      if(@@error<>0)

       rollback tran

      else

       commit tran

     end

    GO

    数据库级别事务有它的优势和限制。

    优势:

    l  所有的事务逻辑包含在一个单独的调用中。

    l  拥有运行一个事务的最佳性能。

    l  独立于应用程序。

    限制:

    l  事务上下文仅存在于数据库调用中。

    l  数据库代码与数据库系统有关。

  • 相关阅读:
    AC自动机算法与AC自动机专辑
    hdu 2757 DNA repair AC自动机dp完全不懂
    hdu 3695 AC自动机模板题
    Magic Tree 水dp 错题!
    AC自动机模板
    UVa 10003 Cutting Sticks 区间dp
    hdu 3695 Computer Virus on Planet Pandora AC自动机
    [置顶] AC自动机算法与AC自动机专辑
    Trip 图dp
    利用数据库创建webservice
  • 原文地址:https://www.cnblogs.com/lyanet/p/2817052.html
Copyright © 2011-2022 走看看