我想要一个函数,它会返回特定表中的所有记录。 函数的输入参数是表名。
任何人都可以帮助我吗?
答案 0 :(得分:4)
您需要动态构建查询。有关详细信息,请查看The Curse and Blessings of Dynamic 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)
正如Rashmi Kant Shrivastwa在注释中指出的那样,您不能在用户定义的函数中使用动态SQL。
答案 1 :(得分:1)