Sql server 2008 如何解决错误:超过最大存储过程、函数、触发器或视图嵌套级别(限制32)
我正在使用另一个视图内部联接(ed)和表值函数创建一个视图, 这个表值函数调用标量值函数来填充其中一列,当我执行相同的操作时,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
我收到错误声明:
超过了最大存储过程、函数、触发器或视图嵌套级别(限制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他会告诉你解决办法的