SQLserver 存储过程游标使用


ALTER PROCEDURE [dbo].[p_DeleteStretchData]
  @BridgeName AS varchar(200) ,
  @BeamNo AS varchar(200) 
AS
BEGIN
    declare @BeamId varchar(50)
    declare @StretchId varchar(50)
    declare @stretch_cursor cursor  -- 声明游标变量
    select @BeamId=BeamId from Beam_Info where BridgeName = ltrim(rtrim(@BridgeName)) and BeamNumber = ltrim(rtrim(@BeamNo))
    set @stretch_cursor=cursor for select ID from XYX_Stretch where BeamId = @BeamId  -- 设置游标
    open @stretch_cursor
    fetch next from @stretch_cursor into @StretchId -- 设值
                -- 循环读取 
        while @@fetch_status=0
            begin
                -- 删除过程数据
                delete from Process where StretchId = @StretchId
                -- 删除基础数据
                delete from Stretch where ID = @StretchId
                -- 下一条
                fetch next from @stretch_cursor into @StretchId
            end
    close @stretch_cursor
    deallocate @stretch_cursor
    -- 删除状态数据
    delete from Status where BeamId = @BeamId
    -- 删除基础数据
    delete from Beam where BeamId = @BeamId
END

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM