我有一个返回表的SQL函数。我想知道如何获取结果表并将其返回到我使用的临时表(在这种情况下称为@Values)。
以下是一个例子:
declare @values table(
MinValue money,
MaxVale money
)
/*
Fill @Values with dbo.GenPayValues function
*/
目前我只能从这样的功能中选择:
SELECT *
FROM dbo.GenPayValues(13.00, 25.00)
有人知道这是否可行?非常感谢您花时间阅读本文。
答案 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)