У меня есть хранимая процедура под названием «GetSPTst», которую я вызываю из функции табличного значения. В этой функции я возвращаю таблицу, ниже приведен мой код SQL. Я получаю сообщение об ошибке"
Сообщение 443, уровень 16, состояние 14, процедура TstFunction, строка 15. Недопустимое использование побочного оператора «INSERT EXEC» внутри функции».
Не могли бы вы помочь?
IF EXISTS (SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[TstFunction]
AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' ))
DROP FUNCTION [dbo].[TstFunction]
GO
CREATE FUNCTION [dbo].[TstFunction]( @AsAtDate datetime, @DateFrom datetime, @DateTo datetime, @Ledger char(1), @CodeFrom varchar(6),
@CodeTo varchar(6), @CurrencyFrom char(3), @CurrencyTo char(3))
RETURNS @FunctionResultTableVariable TABLE (Currency char(3), Code varchar(6), BalOutst int)
AS
BEGIN
insert @FunctionResultTableVariable
EXECUTE [dbo].[GetSPTst]
@AsAtDate
,@DateFrom
,@DateTo
,@Ledger
,@CodeFrom
,@CodeTo
,@CurrencyFrom
,@CurrencyTo;
return;
END
GO
SQL Serverвнутренней функции вы просто не можете вызвать другую хранимую процедуру/функцию. - person Lukasz Szozda   schedule 25.11.2015