2
我正在創建一個視圖使用另一個視圖內部聯接(ed)與表值函數, 此表值函數調用標量值的函數來填充其列之一,當我執行相同的,
我得到錯誤提示:Maximum stored procedure, function, trigger, or view nesting level exceeded(limit 32)
如何解決錯誤:超過最大存儲過程,函數,觸發器或視圖嵌套級別(限制32)
誰能幫助..... PLZ
*以下是表值函數
ALTER FUNCTION [dbo].[sstfnAllSubjectWithAASDID]
(
)
RETURNS
@tt TABLE
(
AASDID numeric(18,0),
SubjectString nvarchar(MAX),
SubjectCount int
)
AS
BEGIN
declare @pID numeric(18,0)
declare @pStr nvarchar(MAx)
declare @pCount int
Declare LAASDID Cursor Read_Only Fast_Forward for (SELECT AASDid from vwAcdAdmissionSessionDetailWithAcdAdmissionSessionSubjectDetail)
open LAASDID
FETCH next from LAASDID into @pID
while(@@FETCH_STATUS =0)
BEGIN
set @pCount = (SELECT COUNT(MasterSubject.SubjectName) as cnt
FROM AcdAdmissionSessionSubjectDetail INNER JOIN
MasterSubject ON AcdAdmissionSessionSubjectDetail.SubjectId = MasterSubject.SubjectId where
AcdAdmissionSessionSubjectDetail.AASDID = @pID
)
set @pStr = (SELECT [dbo].[ssspfnGetSubjectname] (@pID))
Insert Into @tt (AASDID,SubjectString,SubjectCount) values (@pID,@pStr,@pCount)
FETCH next from LAASDID into @pID
END
RETURN
END
這是標量值的函數調用
ALTER FUNCTION [dbo].[ssspfnGetSubjectname] ( @pAASDID numeric(18,0) ) RETURNS nvarchar(max) AS BEGIN DECLARE @Cols1 as nvarchar(max) set @Cols1 = STUFF( (SELECT DISTINCT SubjectName + ',' FROM ( SELECT AcdAdmissionSessionSubjectDetail.AASDID, MasterSubject.SubjectName as SubjectName FROM AcdAdmissionSessionSubjectDetail INNER JOIN MasterSubject ON AcdAdmissionSessionSubjectDetail.SubjectId = MasterSubject.SubjectId where AcdAdmissionSessionSubjectDetail.AASDID = @pAASDID ) as ss FOR XML PATH('')) ,1,1,'') RETURN @Cols1 END
問桑迪普他會告訴你的解決方案 –