我目前有一个存储过程,我想采用灵活的参数。有谁知道这是否可能?
noInterrupts()
上面的例子,我有3个参数。但是有可能有N号吗?并且在正文中有循环遍历N个变量以进行某种执行吗?
谢谢。
答案 0 :(得分:0)
在SqlServer中,您可以使用Xml参数并将所有参数作为Xml传递。 您的程序如下所示:
Create procedure myStoredProc (@xml xml)
as
SELECT
c.value('(.)', 'VARCHAR(8000)') AS paramvalue
FROM @xml.nodes('/Root/param') T(c)
GO
此过程简单地解析输入Xml并选择所有参数。
您可以使用Xml参数调用存储过程,如下所示
DECLARE @xml xml
SET @xml='<Root>
<param>1</param>
<param>2</param>
<param>3</param>
</Root>'
exec myStoredProc @xml