Я попытался вызвать встроенный 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
Выдает ошибку, похожую на:
Сообщение 137, Уровень 15, Состояние 2, Строка 23 Необходимо объявить скалярную переменную
"@ Param2".
Сообщение 102, Уровень 15, Состояние 1, Строка 24 Неверный синтаксис рядом с ','.
Что я делаю не так?