您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL Server:语句完成之前,最大递归100已用尽

SQL Server:语句完成之前,最大递归100已用尽

通常,在使用递归cte的select语句的末尾。 但是,在视图内将行不通。快速搜索将我带到了这篇文章-解释了正确的方法

原来,您不能在视图内部使用查询提示,但是可以并且应该在调用视图的查询中使用它。

样表:

CREATE TABLE T
(
    id int,
    parent int
)
INSERT INTO T VALUES (1, NULL), (2, 1), (3, 1), (4, 2), (5, 2), (6, 3), (7, 4), (8, 5);
GO

创建视图:

CREATE VIEW V
AS

WITH CTE AS
(
    SELECT id, parent
    FROM T 
    WHERE parent IS NULL
    UNION ALL

    SELECT t.id, t.parent
    FROM T
    INNER JOIN CTE ON t.parent = cte.id
)

SELECT *
FROM CTE

GO

执行视图:

SELECT *
FROM V
OPTION (MAXRECURSION 2);
SQLServer 2022/1/1 18:31:19 有468人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶