zoukankan      html  css  js  c++  java
  • sql server在存储过程中使用游标和事务

    create PROCEDURE pro_test
    @classID int
    AS
    BEGIN
        SET NOCOUNT ON;
        begin tran                --开始事务
            declare @error int;    --临时变量
            declare @id int
            declare mycursor cursor        --定义游标
            for select id from test where classID=@classID     --将数据导入游标
            open mycursor        --打开游标
            fetch next from mycursor into @id        --将游标中的数据导入临时变量中,多个变量以逗号隔开
            while @@fetch_status =0        --游标循环
            begin
                --sql语句执行部分
                delete from test where ClassID != @classID 
                if @@ERROR <>0        --执行失败,记录到临时变量
                    set @error =@error +1;
                update test set name='在存储过程中使用事务和游标' where ID=@id
                if @@ERROR <>0
                    set @error =@error +1;
                fetch next from mycursor into @id        --转向下一条数据
            end                    --循环结束
            close mycursor        --关闭游标
            deallocate mycursor    --释放游标
            
        if @error <>0    --执行失败,回滚事务
            rollback tran;
        else            --执行成功,提交事务
            commit tran;
    END
    GO
    
    exec pro_test 1        --调用存储过程
  • 相关阅读:
    获取本地IP地址
    c#从服务器下载文件代码
    Jquery 树控件(Jquery)
    Request.ServerVariables 参数大全
    Developing for App StoreBuilding an App for the App Store02
    App Store1.11
    Basic Tasks1.6
    Design Patterns1.8
    Frameworks1.7
    App Design1.10
  • 原文地址:https://www.cnblogs.com/bingle/p/3033970.html
Copyright © 2011-2022 走看看