如何在storedprocedure中分配函数返回值?

时间:2017-03-30 06:31:25

标签: sql sql-server-2012

我有一个函数 ufnGetTVP ,需要将返回值分配给存储过程中的表变量。

我已尝试过以下代码,但收到错误。我找不到任何相关文章来解决这个问题。

create proc testfunc( @input varchar(50))
as 
begin
DECLARE @mt TABLE
set  @mt = select * from ufnGetTVP(@input)

end

如果有人能够确定这里出了什么问题,那将会很有帮助。

3 个答案:

答案 0 :(得分:2)

您也可以使用临时表,您不必担心列定义。

Match:   QMap<QgsFeatureId, QPair<QMfap<Something, Complex> >>
Group 1: QMap
Group 2: <QgsFeatureId, QPair<QMfap<Something, Complex> >>

答案 1 :(得分:1)

首先,您需要包含要声明的表的结构:

DECLARE @mt as TABLE
(
    <columns list>
)

其次,您无法使用set,您需要使用insert

INSERT INTO @mt (<columns list>)
SELECT <columns list> FROM dbo.ufnGetTVP(@input)

答案 2 :(得分:1)

您是否尝试过插入变量?

同时声明表格中的列以匹配函数:

DECLARE @mt TABLE (Column1 INT, Column2 Int...)

INSERT INTO @mt
SELECT Column1, Column2, ... FROM ufnGetTVP(@input)