zoukankan      html  css  js  c++  java
  • 存储过程里循环读取Array



    CREATE PROCEDURE dbo.s_Manager_UpdateManagerInCatalogID
    (
     @catalogIDArray nvarchar(512),
     @managerID int,
     @Message nvarchar(64) out
    )
    AS

     DECLARE @PointerPrev int
         DECLARE @PointerCurr int
         DECLARE @TId int
         Set @PointerPrev=1
         set @PointerCurr=1

     begin transaction

     Set NoCount ON
     DELETE FROM Common_ManagerINCatalogs where ManagerID = @ManagerID--删除以前的记录
        
         Set @PointerCurr=CharIndex(',',@catalogIDArray,@PointerPrev+1)
         set @TId=cast(SUBSTRING(@catalogIDArray,@PointerPrev,@PointerCurr-@PointerPrev) as int)

         Insert into Common_ManagerINCatalogs (ManagerID,CatalogID) Values(@ManagerID,@TId)

         SET @PointerPrev = @PointerCurr
         while (@PointerPrev+1 < LEN(@catalogIDArray))
         Begin
             Set @PointerCurr=CharIndex(',',@catalogIDArray,@PointerPrev+1) --假设已“,”分隔
             if(@PointerCurr>0)
             Begin
                 set @TId=cast(SUBSTRING(@catalogIDArray,@PointerPrev+1,@PointerCurr-@PointerPrev-1) as int)
                  Insert into Common_ManagerINCatalogs (ManagerID,CatalogID) Values(@ManagerID,@TId)
                 SET @PointerPrev = @PointerCurr
             End
             else
                 Break
         End
        
         set @TId=cast(SUBSTRING(@catalogIDArray,@PointerPrev+1,LEN(@catalogIDArray)-@PointerPrev) as int)
        Insert into Common_ManagerINCatalogs (ManagerID,CatalogID) Values(@ManagerID,@TId)
         Set NoCount OFF
         if @@error=0
         begin
             commit transaction
         end
         else
         begin
       rollback transaction
         end

      SELECT @Message = '{Success}'

    GO

  • 相关阅读:
    js forEach方法
    day1总结
    jupyter notebook
    java_13网络编程
    原生 input radio 优化
    JQ 获取 input file 图片 显示在对应位置
    math.js 使用
    前端优化
    文字动态颜色变化效果
    谷歌,火狐隐藏滚动条
  • 原文地址:https://www.cnblogs.com/smallmuda/p/302698.html
Copyright © 2011-2022 走看看