Вызов встроенного TVF с именованными параметрами, каков правильный синтаксис?

Я попробовал вызвать встроенный 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 Неправильный синтаксис рядом с ','.

Что я делаю не так?

8
задан Michael Goldshteyn 21 November 2011 в 22:05
поделиться