我正在创建一个存储过程,但是在执行该过程时,我得到了特定的错误.
消息217,级别16,状态1,过程SendMail_Renewapp,第77行
超过最大存储过程,功能,触发或视图嵌套级别(限制32).
任何人都可以帮助我解决这个问题.
我的程序如下
- `ALTER PROCEDURE [dbo].[SendMail_Renewapp]
- -- Add the parameters for the stored procedure here
- AS
- BEGIN
- declare @xml nvarchar(max)
- declare @body nvarchar(max)
- declare @currentdate datetime;
- declare @ExpDate datetime;
- declare @mailsendingdate datetime;
- declare @renewtime varchar(10);
- DECLARE @AgencyId int;
- DECLARE @ApplicationID int;
- declare @emailid varchar(100);
- set @currentdate=getdate();
- --Fetching the application details: start--
- DECLARE AppCursor CURSOR FOR
- Select top 5 applications.ap_id,applications.ap_expiry_date,agency.ag_co_email from applications join agency on applications.ap_agency_id=agency.ag_id
- where ap_status='AS' and ap_iame_flag='IA' and ap_expiry_date != ''
- OPEN AppCursor
- FETCH NEXT FROM AppCursor INTO @ApplicationID,@ExpDate,@emailid
- WHILE @@FETCH_STATUS = 0
- BEGIN
- SET @renewtime = ABS(DATEDIFF(day,@currentdate,@ExpDate))
- if(@renewtime=180)
- BEGIN
- --SET @xml = CAST(( SELECT [ag_id] AS 'td','',[ag_name] AS 'td',[ag_co_email] AS 'td',[ag_mobile] AS 'td'FROM beesl.dbo.Agency where @renewtime < 180
- --FOR XML PATH('tr'),ELEMENTS ) AS NVARCHAR(MAX))
- SET @body ='<html>
- <body>
- <div>
- <div>
- <H3>Agencies Details whose payment are still pending for last 3 months</H3>
- </div>
- <table cellpadding="4" cellspacing="1" bgcolor=#FFFFFF border=1 rules=none frame=Box >
- <tr >
- <th style=border:1px solid #000000; align=left bgcolor=#c2c2c2> Agency ID </th>
- <th style=border:1px solid #000000; align=left bgcolor=#c2c2c2> Agency Name </th>
- <th style=border:1px solid #000000; align=left bgcolor=#c2c2c2> Agency Email </th>
- <th style=border:1px solid #000000; align=left bgcolor=#c2c2c2> Contact Number </th>
- </tr>'
- SET @body = @body + @xml +'</table></div></body></html>'
- EXEC msdb.dbo.sp_send_dbmail
- @profile_name='BEE',@recipients='emailid@emailid.com',@subject='Renew Applications',--@file_attachments = 'D:\beelogo.png',@importance= High,--@body = 'Testing'
- @body = @body,@body_format ='HTML';
- END
- FETCH NEXT FROM AppCursor INTO @ApplicationID,@emailid
- END
- CLOSE AppCursor
- DEALLOCATE AppCursor
- --Fetching the application details: end--
- END`
解决方法
使用 “走” 之后 结束 声明