Я попробовал вызвать встроенный TVF с позиционными параметрами и он работает нормально:
SELECT MyTable.Col1,
(SELECT TvfColumn FROM ufnGetData(MyTable.Col1, MyTable.Col2)),
MyTable.Col2
FROM MyTable
Затем я попробовал назвать параметры в TVF и он не разбирается:
SELECT MyTable.Col1,
(SELECT TvfColumn FROM ufnGetData(@Param1=MyTable.Col1, @Param2=MyTable.Col2)),
MyTable.Col2
FROM MyTable
Функция выглядит примерно так:
CREATE FUNCTION dbo.ufnGetData
(
@Param1 INT,
@Param2 INT
)
RETURNS TABLE
AS
RETURN
(
SELECT
blah blah blah AS TvfColumn
)
GO
Выдает ошибку, похожую на:
Msg 137, Level 15, State 2, Line 23 Must declare the scalar variable "@Param2".
Msg 102, Level 15, State 1, Line 24 Неправильный синтаксис рядом с ','.
Что я делаю не так?