0

我有一个返回表的 SQL 函数。我想知道如何获取结果表并将其返回到我使用的临时表中(在这种情况下称为 @Values)。

这是一个例子:

declare @values table(
MinValue money, 
MaxVale money
)


/*
Fill @Values with dbo.GenPayValues function 
*/

目前我只能从这样的功能中进行选择:

SELECT * 
FROM dbo.GenPayValues(13.00, 25.00)

有谁知道这是否可能?非常感谢您花时间阅读本文。

4

2 回答 2

2

只要结构完全相同,这将起作用:

INSERT @values
SELECT * 
FROM dbo.GenPayValues(13.00, 25.00)

但是,如果结构不同,请改为执行以下操作:

SELECT *
INTO #values
FROM dbo.GenPayValues(13.00, 25.00)

这将创建一个临时表,而不是变量,但它仍将在作用域的末尾被删除。

于 2013-08-21T17:44:56.743 回答
2

只是INSERT

INSERT INTO @values
SELECT *
FROM dbo.GenPayValues(13.00, 25.00)

我假设dbo.GenPayValues返回数据的顺序与您声明表的顺序相同@values- 没有多余的列。如果没有,您可以重新排序它们或明确选择:

INSERT INTO @values(MinValue, MaxVale)
SELECT MinValue, MaxValue
FROM dbo.GenPayValues(13.00, 25.00)
于 2013-08-21T17:45:13.743 回答