1

据我所知,我们可以通过 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')
4

1 回答 1

3

不,你不能。

这将是一个动态查询。对于 SQL Server 中的动态查询,必须使用 exec() 或 sp_executesql() 函数,这在函数中是不允许的。

于 2013-07-31T07:24:02.277 回答