首页 > 解决方案 > 使用表值参数从另一个存储过程调用现有存储过程

问题描述

目标:使用不同的值集多次调用现有存储过程,例如参数 1 {100000, 100001, 100002....}, ....

dbo.ExistingStoredProc= 采用 2 个参数的现有存储过程 {int, varchar(20)}

我为此任务使用表值参数。但是,修改现有存储过程以将两个参数替换为一个表值参数是一个真正的麻烦。所以我想用表值参数创建另一个存储过程,然后调用现有的存储过程。这可能吗?

dbo.CallingStoredProc= 带有表值参数和调用的存储过程dbo.ExistingStoredProc

dbo.CallingStoredProc(简化为 1 个参数)

@TvpParameter tvpMyType READONLY

Declare @sn int

Select @sn = SerialNumber from @TvpParameter

EXEC dbo.ExistingStoredProc @sn

修改后的执行脚本dbo.CallingStoredProc

DECLARE @TvpParameter AS dbo.tvpMyType

INSERT INTO @TvpParameter (SerialNumber)    VALUES (123456), (654321)

DECLARE @return_value int

EXEC    @return_value = dbo.CallingStoredProc           
@tvpExistingPar = @TvpParameter

SELECT  'Return Value' = @return_value


结果
我只得到 TVP 中最后一项的结果,即 SerialNumber = 654321。

标签: sql-serverstored-procedurestable-valued-parameters

解决方案


推荐阅读