更改存储过程

时间:2017-06-05 14:42:23

标签: sql

我目前有一个存储过程,我想采用灵活的参数。有谁知道这是否可能?

noInterrupts()

上面的例子,我有3个参数。但是有可能有N号吗?并且在正文中有循环遍历N个变量以进行某种执行吗?

谢谢。

1 个答案:

答案 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