有没有办法使用带有 SQL Server 存储过程的 OpenXML 来传递多个参数而不使用临时表(这真的让我们慢了下来?)?
例如,使用单个参数:
exec usp_FooBar
'<Data><States><State StateID="16" StateName="Massachusetts" "/></States></Data>'
在usp_FooBar
我得到的StateID
价值
Declare @StateID int
.
.
.
SELECT @StateID = StateID FROM
OPENXML(@IDOC,'/Data/States/State',1)
WITH
(
StateID INT
)
但是,假设我想传递多个状态:
exec usp_FooBar
'<Data><States><State StateID="16" StateName="Massachusetts" "/><State StateID="87" StateName="Minnesota" /></States></Data>'
有什么方法可以做类似于单状态场景的事情,我可以接受任意数量的参数,而不使用临时表(正如我所提到的,这对我的性能产生了重大影响)?