博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的SQL游标示例的存储过程
阅读量:5126 次
发布时间:2019-06-13

本文共 1692 字,大约阅读时间需要 5 分钟。

USE [Princess]GO/****** Object:  StoredProcedure [dbo].[p_PaymentTransactions_Insert]    Script Date: 08/10/2012 10:33:12 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[p_PaymentTransactions_Insert]    @PaymentID integer, @InvoiceNo varchar(10), @BalanceAmount decimal(14,2),@MatchBy intAS    declare @InvoiceIDs varchar(200)    declare @Balance money    declare @No varchar(50)    BEGIN TRANSACTION  --事务开始    insert into Payment_Transactions (PaymentID, InvoiceNo,BalanceDate,BalanceAmount,MatchBy,MatchDate)    values(@PaymentID, @InvoiceNo,getdate(),@BalanceAmount,@MatchBy,getdate())    select @Balance = Balance from Payments where PaymentID = @PaymentID    set @Balance = @Balance - @BalanceAmount        --游标读取InvoiceIDs    declare rs cursor for select InvoiceNo from Payment_Transactions where PaymentID = @PaymentID    open rs    fetch next from rs into @No    while @@FETCH_STATUS=0    BEGIN        IF @InvoiceIDs != ''        BEGIN            IF CHARINDEX(@No,@InvoiceIDs)<=0 --函数CHARINDEX()判断@InvoiceIDs变量中是否包含@No变量里面的内容            BEGIN                set @InvoiceIDs = isnull(@InvoiceIDs, '') + @No + ','            END        END        ELSE        BEGIN            set @InvoiceIDs = @No + ','        END                fetch next from rs into @No    end    close rs    deallocate rs    --游标结束        SET @InvoiceIDs = SUBSTRING(@InvoiceIDs,1,LEN(@InvoiceIDs)-1) --去除@InvoiceIDs变量中末尾","    update Payments set Balance =  @Balance, InvoiceIDs = @InvoiceIDs where PaymentID = @PaymentID        exec p_UpdateInvoice_Balance @InvoiceNo  --调用另外一个存储过程        COMMIT TRANSACTION  --提交事务

转载于:https://www.cnblogs.com/captainR/archive/2012/08/10/2631690.html

你可能感兴趣的文章
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
Android打包key密码丢失找回
查看>>
VC6.0调试技巧(一)(转)
查看>>
php match_model的简单使用
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
回调没用,加上iframe提交表单
查看>>
待整理
查看>>
C# 类(10) 抽象类.
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>