在UDF中返回表

时间:2016-02-17 00:06:50

标签: sql-server udf dynamic-tables

我是SQL Server的新手,我想知道如何在UDF中返回表的确切列。

情况是这样的:我将查询一个表,然后将其作为表再次返回。

示例:

create function test
var t
set t = select * from table where condition
return t;

我该怎么做?

(问题只是如何使用动态字段返回表格)

希望你理解这个问题。提前致谢

更新:我的问题是如何创建一个表变量,其列是动态的。

1 个答案:

答案 0 :(得分:2)

User defined functionsseveral limitations(它们意味着没有副作用 - 数据库中没有任何东西 - 等等)。对于您的特定情况,以下内容禁止您开展工作:

  • 无法使用动态SQL
  • 不允许使用临时表

因此,只有在编译时知道结果的结构是什么时,函数才能工作。

我会考虑一个程序来实现您的需求,因为它允许更多的灵活性。然而,这伴随着在stored procedures之间共享数据的头痛。

问题中未指明,但理想情况下,此动态处理应保留为C#Java等高级语言,以支持动态结构(例如LINQDynamic LINQ中的C#