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

  • 相关阅读:
    ajax全套
    url设计规范
    内置下划线方法
    rest_framework视图
    rest_framework
    数据库设置
    HDU 6231
    HDU 6242
    CodeForces 546D
    CodeForces 940E
  • 原文地址:https://www.cnblogs.com/smallmuda/p/302698.html
Copyright © 2011-2022 走看看