SQL表函数变量

时间:2013-08-21 17:43:30

标签: sql sql-server

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

以下是一个例子:

declare @values table(
MinValue money, 
MaxVale money
)


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

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

SELECT * 
FROM dbo.GenPayValues(13.00, 25.00)

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

2 个答案:

答案 0 :(得分:2)

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

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

但是,如果结构不同,请改为:

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

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

答案 1 :(得分: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)