据我所知,我们可以通过db函数返回一个表:
CREATE FUNCTION MyFunction(@Value varchar(100))
RETURNS table
AS RETURN (select * from MyTable where ColumnName = '@Value')
在这个例子中,我们可以将列名作为函数的参数。我的问题是,我们可以将列名和表名写为函数的参数吗?因此我们可以写一个更通用的函数,如:
CREATE FUNCTION MyGenericSearchFunction(@TableName varchar(100), @ColumnName varchar(100), @Value varchar(100))
RETURNS table
AS RETURN (select * from @TableName where @ColumnName = '@Value')
答案 0 :(得分:3)
不,你不能。
这将是一个动态查询。 对于SQL Server中的动态查询,必须使用exec()或sp_executesql()函数,这些函数在函数中是不允许的。