--处理file与folder中的order

-- 声明变量
DECLARE
    @fileid AS INT,
    @folderid AS INT,
    @order AS INT,
    @oldFolderId AS INT,
    @orderCursor AS INT;
-- 声明游标
DECLARE C_FILE CURSOR FAST_FORWARD FOR
    SELECT Id,FolderID,[ORDER] 
    FROM FILES where [ORDER]=0
    ORDER BY FolderId,Name;
OPEN C_FILE;

-- 取第一条记录
FETCH NEXT FROM C_FILE INTO @fileid,@folderid,@order;
set @oldFolderId = @folderid
set @orderCursor = 0
WHILE @@FETCH_STATUS=0
BEGIN
    
	if(@oldFolderId != @folderid)
    begin
		set @orderCursor = 0;
		set @oldFolderId = @folderid;
    end
    set @orderCursor = @orderCursor + 1;
    
	UPDATE FILES SET [Order]= @orderCursor WHERE Id=@fileid;
    
    -- 取下一条记录
    FETCH NEXT FROM C_FILE INTO @fileid,@folderid,@order;
END

-- 关闭游标
CLOSE C_FILE;

-- 释放游标
DEALLOCATE C_FILE;

相关文章:

  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2022-02-01
  • 2021-08-13
  • 2021-07-19
  • 2021-08-04
猜你喜欢
  • 2022-12-23
  • 2022-01-13
  • 2021-09-04
  • 2021-12-07
  • 2021-07-19
  • 2022-03-04
  • 2021-07-17
相关资源
相似解决方案