函数 - 带参数的TQL传递函数

时间:2014-08-10 05:07:43

标签: tsql

我正在尝试创建一个可以对表进行计数的简单函数。我想以参数的形式将表名传递给变量,此函数将计数作为int返回。请参阅下面的我的功能,并帮助我理解为什么这不起作用。

CREATE FUNCTION count_rows     

(@tablename varchar(100)

RETURNS int AS

BEGIN

DECLARE     @emp_count AS int

declare     @declaration varchar(100)

@declaration='SELECT count(*) 

FROM ' + @tablename

@emp_count=cast(@declaration as int)



RETURN @emp_count

END

GO

我得到的错误如下:

  

消息102,级别15,状态1,过程count_rows,第3行不正确   'RETURNS'附近的语法。消息102,级别15,状态1,过程   count_rows,第10行'@declaration'附近的语法不正确。消息178,   级别15,状态1,过程count_rows,第14行RETURN语句   返回值不能在此上下文中使用。

1 个答案:

答案 0 :(得分:0)

您需要使用动态SQL来处理从应用程序传入的表名。对于动态sql,功能是不可能的。您将需要使用存储过程来执行此操作。