【发布时间】:2012-01-03 09:15:39
【问题描述】:
我尝试使用位置参数调用内联 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 必须声明标量变量 “@Param2”。
消息 102,级别 15,状态 1,第 24 行 ',' 附近的语法不正确。
我做错了什么?
【问题讨论】:
标签: sql-server-2008 tsql sql-server-2008-r2