sql-server - 使用表值参数从另一个存储过程调用现有存储过程
问题描述
目标:使用不同的值集多次调用现有存储过程,例如参数 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。
解决方案
推荐阅读
- haskell - Haskell 中的类型类和类型推断
- mysql - 如何对 MySQL 进行求和和分组?
- database - 我无法在视图中显示我获取的数据
- java - 为什么更改 -xmx VM 选项后仍然出现异常“java.lang.OutOfMemoryError: Java heap space”?
- sql - 登录前握手期间发生错误,由于防病毒?
- python - 通过比较python中的两个嵌套列表生成0和1的嵌套列表
- c# - 如何将导航菜单链接到具有不同内容的同一页面?
- java - Android GridLayout 中的不同高度
- python - 如何从 app.callback 返回数据帧,并将我的输出作为 dbc.Table.from_dataframe
- python - 试图理解特定的 python 关键字。需要帮助查找文档