Sql server 2008 如何解决错误:超过最大存储过程、函数、触发器或视图嵌套级别(限制32)

Sql server 2008 如何解决错误:超过最大存储过程、函数、触发器或视图嵌套级别(限制32),sql-server-2008,Sql Server 2008,我正在使用另一个视图内部联接(ed)和表值函数创建一个视图, 这个表值函数调用标量值函数来填充其中一列,当我执行相同的操作时, 我收到错误声明:超过了最大存储过程、函数、触发器或视图嵌套级别(限制32) 有人能帮忙吗 *下面是表值函数 ALTER FUNCTION [dbo].[sstfnAllSubjectWithAASDID] ( ) RETURNS @tt TABLE ( AASDID numeric(18,0), SubjectString nvarchar(MAX

我正在使用另一个视图内部联接(ed)和表值函数创建一个视图, 这个表值函数调用标量值函数来填充其中一列,当我执行相同的操作时,
我收到错误声明:
超过了最大存储过程、函数、触发器或视图嵌套级别(限制32)

有人能帮忙吗

*下面是表值函数

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
    
试试这个代码

SP_CONFIGURE 'nested_triggers',0
GO
RECONFIGURE
GO

问Sandeep他会告诉你解决办法的