背景:
实现方式:
详细代码
ALTER PROCEDURE [dbo].[sp_GenerateSystemCaculateSalaryData]
(
@EmployeeCode varchar(50),
@SalaryCode varchar(50),
@SalaryItemID varchar(50),
@SalaryItemValue float output
)
AS
BEGIN
SET NOCOUNT ON;
Declare @FunctionName varchar(200)
--先抓取计算公式
if exists ( select 1 from PMINS a inner join PMINPSF b on a.PMINPSFID=b.PMINPSFID where a.PMINSIC =@SalaryItemID)
begin
declare @sql nvarchar(4000)
select @FunctionName=b.PMINPSFNM from PMINS a inner join PMINPSF b on a.PMINPSFID=b.PMINPSFID where a.PMINSIC =@SalaryItemID
set @sql=N'exec '+@FunctionName+' @EmployeeCodeTemp,@SalaryCodeTemp,@SalaryItemValueTemp out'
exec sp_executeSQL @sql,N'@EmployeeCodeTemp varchar(50),@SalaryCodeTemp varchar(50),@SalaryItemValueTemp float out',@EmployeeCode,@SalaryCode,@SalaryItemValue output
end
else
begin
RAISERROR ('计算公式未指定', 16, 3);
RETURN 1;
end
END