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