我有一个调用存储过程的报告,而该存储过程又调用存储过程。
母公司是一项汇总费用与收入相比多年合约的公司。
子sp返回单个预算年度的原始数据。
大部分时间都很漂亮。但是,有时我们会得到一个错误,即无法找到子sp中的第一个字段。该字段来自简单的选择语句。
问题似乎发生在服务器负载较重的一天中。
以下是调用子sp的父sp的部分:
declare c_by cursor for (select ccbyId from #budgetYears)
open c_by
fetch next from c_by into @c_byId
while @@FETCH_STATUS=0
Begin
begin try
insert into #fullDataSet
EXEC [dbo].[rptByToDate]
@ClientContractBudgetYear = @c_byId
,@userID = @userID
,@DBName = @DBName
end try
begin catch
IF @@TRANCOUNT > 0
ROLLBACK
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
end catch
fetch next from c_by into @c_byId
End
close c_by
deallocate c_by
我缺少什么?