在 UDF 中返回表
Returning tables in UDF
我是 SQL 服务器的新手,我想知道如何 return UDF 中 table 的确切列。
情况是这样的:我要查询一个 table,然后 return 再次查询 table。
示例:
create function test
var t
set t = select * from table where condition
return t;
我要怎么做?
(问题只是如何 return 具有动态字段的 table)
希望你理解这个问题。提前致谢
UPDATE :我的问题有点像如何创建一个 table 变量,其中的列是动态的。
User defined functions
有 several limitations(它们意味着没有副作用 - 数据库中没有任何东西 - 等等)。对于您的具体情况,以下禁止您进行工作:
- 动态SQL无法使用
- 不允许临时表
所以,一个函数只有在编译时知道结果的结构是什么才能工作。
我会考虑一个程序来实现您的需要,因为它允许更大的灵活性。然而,这伴随着 stored procedures.
之间共享数据的头痛。
问题中没有具体说明,但理想情况下,这种动态处理应该使用像 C#
或 Java
这样的高级语言,它们对动态结构有更多的支持(例如 LINQ
或 Dynamic LINQ
在 C#
)
我是 SQL 服务器的新手,我想知道如何 return UDF 中 table 的确切列。
情况是这样的:我要查询一个 table,然后 return 再次查询 table。
示例:
create function test
var t
set t = select * from table where condition
return t;
我要怎么做?
(问题只是如何 return 具有动态字段的 table)
希望你理解这个问题。提前致谢
UPDATE :我的问题有点像如何创建一个 table 变量,其中的列是动态的。
User defined functions
有 several limitations(它们意味着没有副作用 - 数据库中没有任何东西 - 等等)。对于您的具体情况,以下禁止您进行工作:
- 动态SQL无法使用
- 不允许临时表
所以,一个函数只有在编译时知道结果的结构是什么才能工作。
我会考虑一个程序来实现您的需要,因为它允许更大的灵活性。然而,这伴随着 stored procedures.
之间共享数据的头痛。问题中没有具体说明,但理想情况下,这种动态处理应该使用像 C#
或 Java
这样的高级语言,它们对动态结构有更多的支持(例如 LINQ
或 Dynamic LINQ
在 C#
)