Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
当表名作为参数发送到ms sql函数时,如何从表中选择记录_Sql_Sql Server 2008 - Fatal编程技术网

当表名作为参数发送到ms sql函数时,如何从表中选择记录

当表名作为参数发送到ms sql函数时,如何从表中选择记录,sql,sql-server-2008,Sql,Sql Server 2008,我想要一个函数,它将返回我一个特定表中的所有记录。 函数的输入参数将是表名 有人能帮我吗 您需要动态构建查询。查看以获取更多信息 declare @TableName sysname = 'TableName' declare @sql nvarchar(max) = 'select * from '+quotename(@TableName) exec (@sql) 作为存储过程,它将如下所示: create procedure GetAll @TableName sysname as

我想要一个函数,它将返回我一个特定表中的所有记录。 函数的输入参数将是表名


有人能帮我吗

您需要动态构建查询。查看以获取更多信息

declare @TableName sysname = 'TableName'
declare @sql nvarchar(max) = 'select * from '+quotename(@TableName)
exec (@sql)
作为存储过程,它将如下所示:

create procedure GetAll
  @TableName sysname
as

declare @sql nvarchar(max) = 'select * from '+quotename(@TableName)
exec (@sql)

正如评论中指出的,您不能在用户定义的函数中使用动态SQL。

您需要动态构建查询。查看以获取更多信息

declare @TableName sysname = 'TableName'
declare @sql nvarchar(max) = 'select * from '+quotename(@TableName)
exec (@sql)
作为存储过程,它将如下所示:

create procedure GetAll
  @TableName sysname
as

declare @sql nvarchar(max) = 'select * from '+quotename(@TableName)
exec (@sql)

正如注释中指出的,您不能在用户定义的函数中使用动态SQL。

您不能在函数中使用动态SQL查询。为了达到你想要的效果,你可以求助于 sql CLR函数


您可以检查,也可以帮助您

您不能在函数内部使用动态sql查询。为了达到你想要的效果,你可以求助于 sql CLR函数


您可以查看,也可以帮助您

您应该向我们提供更多信息,但一般来说是这样的。”选择“从”$我需要一个函数。输入参数是表名,它是一个字符串。我需要输出作为该表的所有记录。我无法直接选择*,因为我发送的表名是string@NitheshKumarKuntady我贴出了答案,但你能解释一下你的要求吗?你为什么需要这样的功能?你能用适当的表名执行什么简单的查询?@nitheshkumarkunday这是个糟糕的主意。不要这样做。您的设置存在许多问题之一-您可能有多个具有相同结构的表(这表明它们可能应该是同一个表),或者您正在使用
select*
(这意味着您正在使服务器做比它应该做的更多的工作,并检索比所需的更多的数据).你应该给我们更多的信息,但总的来说是这样的。”选择“从”$我需要一个函数。输入参数是表名,它是一个字符串。我需要输出作为该表的所有记录。我无法直接选择*,因为我发送的表名是string@NitheshKumarKuntady我贴出了答案,但你能解释一下你的要求吗?你为什么需要这样的功能?你能用适当的表名执行什么简单的查询?@nitheshkumarkunday这是个糟糕的主意。不要这样做。您的设置存在许多问题之一-您可能有多个具有相同结构的表(这表明它们可能应该是同一个表),或者您正在使用
select*
(这意味着您正在使服务器做比它应该做的更多的工作,并检索比需要的更多的数据)。