在sql(server 2008)内联函数中定义几个输入变量

时间:2011-05-29 17:05:31

标签: sql sql-server tsql sql-server-2008 function

我想修改我的内联函数,以便它可以处理两个变量作为输入。只有一个它工作得很好。

FUNCTION [dbo].[TBL_UDF_HowOften]
(   
-- Add the parameters for the function here
@membername as varchar(15),
@tablename as varchar(15)
)
RETURNS @ergebnis TABLE
(
participated            float,
percent                 float,
WonWen1                 float,
WonWen2                 float,  
WonWen3                 float
)

AS
BEGIN

    DECLARE @wintimes       float
    DECLARE a lot of other stuff...

    SELECT @wintimes = COUNT(DidWin)
    FROM @tablename
    WHERE DidWin = 1 AND membername = @membername

... and so on

嗯,@ membername被识别,但@tablename标有“必须声明表变量”@tablename“。”

1 个答案:

答案 0 :(得分:4)

您不能在“from”子句中使用标量变量作为表名。您需要使用动态sql,我认为不能在函数内部完成。