我有一个函数...其中我有返回类型作为表变量... 但是如果我们使用临时表,性能会提高......因为我们有更多的数据。
答案 0 :(得分:2)
不,你不能“返回”临时表 - 你可以在调用函数之前创建临时表,并让你的函数将数据写入临时表。
但这有一种变得相当混乱的倾向....你需要确保在调用函数之前创建临时表.....
你真的,老实说衡量两种方法的表现吗?我不认为临时表总是更快......使用表变量的方法对我来说似乎更清晰,更直观。
答案 1 :(得分:1)
你当然不能返回临时表。但您可以在调用存储过程中定义它。请记住,仅对存储过程起作用。您无法从函数中访问临时表。
答案 2 :(得分:0)
您可以使用返回实际表的CLR表值函数。 CLR函数是您可以用您的母语C#,VB等编写的函数,并且dll嵌入在数据库中。
从这里了解更多信息:
答案 3 :(得分:0)
这几乎涵盖了利弊和示例代码的每一种方式:
How to Share Data Between Stored Procedures by Erland Sommarskog
Using OUTPUT Parameters
Table-valued Functions
Inline Functions
Multi-statement Functions
Using a Table
Sharing a Temp Table
Process-keyed Table
Global Temp Tables
INSERT-EXEC
Table Parameters and Table Types
Using the CLR
OPENQUERY
Using XML
Using Cursor Variables