当表名作为参数发送到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*
(这意味着您正在使服务器做比它应该做的更多的工作,并检索比需要的更多的数据)。