zoukankan      html  css  js  c++  java
  • 循环批量更新的的存储过程(属于转载)

    View Code
    CREATE PROCEDURE  addusermodule
    @ModuleId_Array varChar(2000),
    @UserId int
    AS
    DECLARE @PointerPrev int
    DECLARE @PointerCurr int
    DECLARE @TId int
    Set @PointerPrev=1
    set @PointerCurr=1

    begin transaction
    Set NoCount ON
    delete from tests where userid=@UserId

    Set @PointerCurr=CharIndex (',',@ModuleId_Array ,@PointerPrev+1)
    set @TId=cast (SUBSTRING(@ModuleId_Array,@PointerPrev ,@PointerCurr-@PointerPrev) as int)
    Insert into tests (userid,moduleid) Values(@UserId,@TId)
    SET @PointerPrev = @PointerCurr
    while (@PointerPrev+1 < LEN(@ModuleId_Array))
    Begin
    Set @PointerCurr=CharIndex( ',',@ModuleId_Array, @PointerPrev+1)
    if(@PointerCurr> 0)
    Begin
    set @TId=cast (SUBSTRING(@ModuleId_Array,@PointerPrev +1,@PointerCurr- @PointerPrev-1) as int)
    Insert into tests (userid,moduleid) Values (@UserId,@TId)
    SET @PointerPrev = @PointerCurr
    End
    else
    Break
    End

    set @TId=cast(SUBSTRING(@ModuleId_Array,@PointerPrev+ 1,LEN(@ModuleId_Array )-@PointerPrev) as int)
    Insert into tests (userid,moduleid) Values (@UserId,@TId)

    delete from tests where moduleid =0
    Set NoCount OFF
    if @@error= 0
    begin
    commit transaction
    end
    else
    begin
    rollback transaction
    end
    GO


    编辑器加载中...

  • 相关阅读:
    257. Binary Tree Paths
    poj2406 kmp
    hust1010 kmp
    hdu1358 kmp的next数组
    hdu3746 kmp求循环节
    hdu1686字符串kmp
    hdu2087kmp
    hdu1711kmp
    poj3067树状数组求逆序数
    poj1159二维树状数组
  • 原文地址:https://www.cnblogs.com/mushaobai/p/2303068.html
Copyright © 2011-2022 走看看