Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2005我希望能够选择一个我声明为变量的函数_Sql_Sql Server_Tsql - Fatal编程技术网

SQL Server 2005我希望能够选择一个我声明为变量的函数

SQL Server 2005我希望能够选择一个我声明为变量的函数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在SQL Server中有一个表,其中包含某些函数的名称 是否可以根据存储在表中的字符串选择函数 通常我会在SSMS中执行以下命令 SELECT dbo.udfGetFileName () 但是我想通过从表中获取函数名来获得相同的结果 DECLARE @GetFileName VARCHAR(30); SET @GetFileName = (SELECT FunctionName FROM Functions) SELECT @GetFileName () 类似上面的东西,显然变

我在SQL Server中有一个表,其中包含某些函数的名称

是否可以根据存储在表中的字符串选择函数

通常我会在SSMS中执行以下命令

SELECT dbo.udfGetFileName ()  
但是我想通过从表中获取函数名来获得相同的结果

DECLARE @GetFileName VARCHAR(30); 
SET @GetFileName = (SELECT FunctionName FROM Functions)
SELECT @GetFileName ()  
类似上面的东西,显然变量不起作用,但我想知道我是否能得到一些想法


任何帮助都将不胜感激。

您需要将其编写为动态SQL

declare @GetFileName varchar(30);
declare @query  nvarchar(1024)

select @GetFileName  = functionName from Functions
set @query = 'select ' +  @GetFileName
exec sp_executesql @query

您可以将sql构建为字符串,然后使用
sp\u executesql
执行它:

DECLARE @GetFileName VARCHAR(30); 
SET @GetFileName = (SELECT FunctionName FROM Functions)

DECLARE @sql nvarchar(1000)
SET @sql = 'select ' + @GetFileName

exec sp_executesql @sql