我有一个存储过程,它返回一个结果集,并且我想将其转换为用户定义的函数,以便我可以从中调用特定的字段。
我知道UDF可以使用以下命令返回表:
CREATE FUNCTION fn_FunctionName
RETURNS @table TABLE (col1 int, col2 varchar...)
问题是我的程序动态地为返回表创建列,因此在调用表之前无法知道表的结构。
有没有办法以这种方式创建一个函数? 我试过把它写成:
CREATE FUNCTION [SB].[fn_FunctionName] (@var varchar(max) = NULL)
RETURNS TABLE
AS
declare @var1 ....
但我得到Incorrect syntax near the keyword 'declare'
或者,有没有办法从返回表的存储过程中调用特定列?