【发布时间】:2018-01-06 05:13:46
【问题描述】:
我收到以下错误:
超过最大存储过程、函数、触发器或视图嵌套级别(限制为 32)。
我可以在其他线程中看到它与您需要添加的内容有关。我不知道如何做到这一点,并注意到它是一个递归过程。任何想法如何解决这个问题?
ALTER PROCEDURE [dbo].[SetMigrate]
(@DirId uniqueidentifier,
@Source nvarchar(255),
@Recursive bit)
AS
DECLARE @IsRoot AS BIT
SELECT @IsRoot = IsMigrationRoot
FROM directories
WHERE folderid = @DirId
IF (@IsRoot = 1)
BEGIN
RETURN
END
UPDATE directories
SET migrate = 1, [source] = @Source
WHERE folderid = @DirId
IF (@Recursive = 0)
BEGIN
RETURN
END
DECLARE @parentid uniqueidentifier, @directoryid uniqueidentifier
DECLARE Directories cursor local read_only for
SELECT FolderID, ParentFolderID
FROM directories
WHERE ParentFolderID = @DirId
OPEN Directories
FETCH NEXT FROM Directories INTO @directoryid, @parentid
WHILE @@FETCH_STATUS = 0
BEGIN
--print @Path
EXEC SetMigrate @directoryid, @Source, @Recursive
FETCH NEXT FROM Directories INTO @directoryid, @parentid
END
CLOSE Directories
DEALLOCATE Directories
GO
【问题讨论】:
标签: sql sql-server