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


    编辑器加载中...

  • 相关阅读:
    修改表中的列
    查看表中都有什么约束
    数据库关系图
    删除约束
    T_SQL 语句想已有数据表添加约束
    判断回文联
    python自定义函数可以向前引用不用声明
    所有参数的和乘以基数
    子字符串在目标字符串中出现的次数
    除二取余倒序排列
  • 原文地址:https://www.cnblogs.com/mushaobai/p/2303068.html
Copyright © 2011-2022 走看看