SQL 错误超出最大存储过程、函数、触发器或视图嵌套级别
SQL error Maximum stored procedure, function, trigger, or view nesting level exceeded
我有一个错误
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
当我打电话给
select dbo.CheckProjectValidity(11, 9)
使用此 SQL 函数。
ALTER function [dbo].[CheckProjectValidity](@IdParent int, @IdStructure int)
RETURNS bit
AS
BEGIN
declare @Result bit;
if @IdParent=0
set @Result = 0
else
if @IdParent=@IdStructure
set @Result = 1
else
begin
set @IdParent = (select st.IdParent from Structure st where st.IdParent=@IdParent);
set @Result = dbo.CheckProjectValidity(@IdParent, @IdStructure)
end
return @Result
END
我想从树中获取项目列表的想法。
您的过程由于以下语句而无限递归:
set @IdParent = (select st.IdParent from Structure st where st.IdParent=@IdParent)
有效地将 @IdParent
设置为其现有值。你可能想使用类似的东西:
set @IdParent = (select st.IdParent from Structure st where st.Id=@IdParent)
(我猜 IdParent
指向另一行中的 Id
值)
我有一个错误
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
当我打电话给
select dbo.CheckProjectValidity(11, 9)
使用此 SQL 函数。
ALTER function [dbo].[CheckProjectValidity](@IdParent int, @IdStructure int)
RETURNS bit
AS
BEGIN
declare @Result bit;
if @IdParent=0
set @Result = 0
else
if @IdParent=@IdStructure
set @Result = 1
else
begin
set @IdParent = (select st.IdParent from Structure st where st.IdParent=@IdParent);
set @Result = dbo.CheckProjectValidity(@IdParent, @IdStructure)
end
return @Result
END
我想从树中获取项目列表的想法。
您的过程由于以下语句而无限递归:
set @IdParent = (select st.IdParent from Structure st where st.IdParent=@IdParent)
有效地将 @IdParent
设置为其现有值。你可能想使用类似的东西:
set @IdParent = (select st.IdParent from Structure st where st.Id=@IdParent)
(我猜 IdParent
指向另一行中的 Id
值)