带动态名称的SQL Server调用函数(例如来自变量)

时间:2016-02-07 15:51:55

标签: sql sql-server tsql

我有一个从表

获取数据的函数
CREATE FUNCTION dbo.fxnExample (@Id integer)
RETURNS TABLE
AS
    RETURN
       (SELECT Name FROM Names WHERE Id = @Id)

然后我在存储过程中调用此函数,该函数也包含参数。

CREATE PROCEDURE [dbo].[test]
@Id int
AS
BEGIN
     SELECT * 
     INTO #ttable 
     FROM @FUNCTION_NAME(@Id);
END

我需要调用这个存储过程并使用我函数里面的数据。另外我需要在存储过程中获得的函数中传递参数。

我该怎么办?请帮帮我

1 个答案:

答案 0 :(得分:0)

你可以在proc

中使用动态sql
declare @sqlText varchar(max)
set @sqlText = 'SELECT * INTO #ttable FROM ' + @FUNCTION_NAME + '(' + cast(@Id as varchar) + ')'
exec(@sqlText)