在这里和网上做了一些研究后,我不知道这是否可能。我想要做的是调用一个存储过程,它有几个参数,其中一个是表值参数。
这是我的存储过程片段:
ALTER PROCEDURE [dbo].[procName]
@Action nvarchar(10) = 'view'
,@var1 int = 0
,@var2 int = 0
,@var3 myType ReadOnly
我现在有另一个过程(proc2),它具有以下几行:
insert into @varX
select top 5
field1, field2
from
sourceTable
print 'Processing from table values...'
exec dbo.procName 'refresh', -1, 0, @varX
请注意,varX 和 var3 属于同一类型 MyType 当我执行 proc2 时,我收到错误,我为 dbo.procName 指定了太多参数
我当时认为不可能为存储过程指定多个参数,包括表值参数。我现在倾向于将我的 procName 定义更改为只有一个参数(正如所有在线示例似乎都有),并让我的表值参数充当参数值数组,包括我在我的信息上一个 select 语句(在 proc2 中)。但是,如果可以进行此调用,请说明如何进行。
谢谢