簡體   English   中英

超出最大存儲過程,函數,觸發器或視圖嵌套級別

[英]maximum stored procedure, function, trigger, or view nesting level exceeded

我收到以下錯誤:

超出最大存儲過程,函數,觸發器或視圖嵌套級別(限制32)。

我可以在其他線程中看到它與您需要添加go的內容有關。 我不確定如何執行此操作,並且注意到它是遞歸過程。 任何想法如何解決這個問題?

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

首先刪除if語句的開頭和結尾。 還要確保您已更改數據庫以允許recursive_triggers。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM