【发布时间】:2017-03-18 16:21:12
【问题描述】:
我目前收到此错误:
消息 217,第 16 层,状态 1,第 127 行
超出最大存储过程、函数、触发器或视图嵌套级别(限制 32)
如何最小化嵌套级别?我做了一些研究,发现有人使用过 go each end,但这对我不起作用。
--Function: StateFilingStatus
create function dbo.GetStateFilingStatus(@EmpFederalFilingStatus char(1), @EmpTransferState char(2))
returns char(1)
as
begin
declare @StateFilingStatus char;
if (@EmpTransferState = 'MS')
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'A';
else
set @StateFilingStatus = 'M';
end
else if (@EmpTransferState = 'NJ')
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'B';
else
set @StateFilingStatus = 'A';
end
else if (@EmpTransferState = 'AZ')
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'A';
else
set @StateFilingStatus = 'B';
end
else if (@EmpTransferState = 'CT')
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'F';
else
set @StateFilingStatus = 'M';
end
else if (@EmpTransferState = 'DC')
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'S';
else
set @StateFilingStatus = 'Y';
end
else
begin
if (@EmpFederalFilingStatus = 'S')
set @StateFilingStatus = 'S';
else
set @StateFilingStatus = 'M';
end
return (select dbo.GetStateFilingStatus(EmpFederalFilingStatus, EmpTransferState) as StateFilingStatus
from EmployeeTransfers)
end
go
select dbo.GetStateFilingStatus('M','NJ') as StateFilingStatus
【问题讨论】:
标签: sql-server-2008 user-defined-functions