zoukankan      html  css  js  c++  java
  • 一个容易忽视的存储过程问题

    在MS SQL SEVER的存储过程中,最好加上事务哦,一般的书上都没提到这点,以后要注意下:

    set xact_abort on
    begin transcation
    /**中间执行的SQL代码*/
    commit transcation
     if @@error>0
           rollback

    SET XACT_ABORT
    指定当 Transact-SQL 语句产生运行时错误时,Microsoft? SQL Server? 是否自动回滚当前事务
    ,当设置为ON时,如果产生错误,则回滚整个事务,为OFF时,只回滚产生错误的SQL语句,而事务继续进行处理。 
      如果 Transact-SQL 语句执行成功,则 @@ERROR 系统函数返回 0;如果此语句产生错误,则 @@ERROR 返回错误号。每一个 Transact-SQL 语句完成时,@@ERROR 的值都会改变。

    因为每个 Transact-SQL 语句执行完毕时,@@ERROR 都会得到一个新的值,@@ERROR 可用以下两种方法处理:

    1.在 Transact-SQL 语句后,马上检测或使用 @@ERROR。


    2.在 Transact-SQL 语句完成后,马上把 @@ERROR 存储到一个整型变量中。此变量的值可供以后使用。

    @@ERROR 通常用于表示存储过程的成功或失败。整型变量初始化为 0。完成每个 Transact-SQL 语句后,都要测试 @@ERROR 是否为 0。如果 @@ERROR 不是 0,将被存储在变量中。存储过程然后在 RETURN 语句中返回变量。如果过程中的 Transact-SQL 语句都没有错误,变量保持为 0。如果一个或多个语句生成错误,则变量包含最后的错误号。
  • 相关阅读:
    C#小型资源管理器
    C#换肤LrisSkin
    面向对象的24种设计模式
    七大设计原则
    非泛型集合和泛型集合
    C#经理评价系统
    深入C#.NET框架
    C#窗口航空总结
    java基础数据结构和语法
    HTML
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/1257785.html
Copyright © 2011-2022 走看看