我已经开始阅读关于表值参数的注释
这些TVP可以作为输入参数和输出参数吗?
将它们作为输出参数有什么意义吗?
我觉得可能有一个 TVP 作为一个存储过程的输出,然后再输入另一个存储过程 - 可能吗?
调用第一个存储过程然后使用第一个存储过程的输出 TVP 调用第二个存储过程的脚本的语法是我不确定的一点。
编辑
为我的帖子的混乱道歉-似乎初始程序结果需要进入 TVP-我认为 TVP 需要参与到该存储过程中。所以我所说的一个模型如下 - 希望是 TVP 的有效使用......
CREATE TYPE myfirstTVP AS TABLE (id INT NOT NULL PRIMARY KEY);
GO --<<this sproc will find the ids (+ other fields) that need to be investigated
CREATE PROC test1 as
SELECT 1 UNION
SELECT 2 UNION
SELECT 3;
GO
GO --<<this sproc uses the found ids to do one aspect of the investigation
CREATE PROC test2
@t2 myfirstTVP READONLY
AS
SELECT id*2
FROM @t2;
GO
GO --<<this sproc uses the found ids to do another aspect of the investigation
CREATE PROC test3
@t4 myfirstTVP READONLY
AS
SELECT id*3
FROM @t4;
GO
--<<this is where the TVP is used and the sprocs are called
DECLARE @t3 myfirstTVP ;
INSERT INTO @t3
EXEC test1;
EXEC test2 @t3;
EXEC test3 @t3;