目标:使用不同的值集多次调用现有存储过程,例如参数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。