我有一个函数 ufnGetTVP ,需要将返回值分配给存储过程中的表变量。
我已尝试过以下代码,但收到错误。我找不到任何相关文章来解决这个问题。
create proc testfunc( @input varchar(50))
as
begin
DECLARE @mt TABLE
set @mt = select * from ufnGetTVP(@input)
end
如果有人能够确定这里出了什么问题,那将会很有帮助。
答案 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)