0
目前,我有,我要承担的参数的灵活数量的存储过程。有谁知道这是否可能?改变储存过程
ALTER PROCEDURE myStoredProc
(@variable1 INT,
@variable2 INT,
@variable3 INT)
上面的例子,我有3个参数。但是有可能有N号码吗?并且在体内有循环遍历N个变量用于某种执行?
谢谢。
目前,我有,我要承担的参数的灵活数量的存储过程。有谁知道这是否可能?改变储存过程
ALTER PROCEDURE myStoredProc
(@variable1 INT,
@variable2 INT,
@variable3 INT)
上面的例子,我有3个参数。但是有可能有N号码吗?并且在体内有循环遍历N个变量用于某种执行?
谢谢。
在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
MySQL或SQL服务器?请不要标记无关的产品。 –
任何时候你认为“我需要一个变量数量的变量”,而是认为“我需要一个数组”。 [这个问题可以帮帮忙,如果它是MySQL的(https://stackoverflow.com/questions/8149545/pass-array-to-mysql-stored-routine) – JNevill
如果SQL Server使用** [TVP(https://开头docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine)** – lad2025