使用多个参数值执行存储过程

时间:2015-09-17 12:27:56

标签: sql-server stored-procedures

我有一个简单的存储过程,它以一个输入参数为基础执行。但由于参数不同,我必须执行大约100次(参数是int)除了逐个输入参数值之外还有其他方法吗?我的意思是@parameter in(值1,值2,.....值n)。非常感谢。 这是程序:

ALTER PROCEDURE procname
@parameter AS BIGINT

AS

DELETE FROM tbl1 WHERE id = @parameter
DELETE FROM tbl2 WHERE tbl2_field=@parameter 
DELETE FROM tbl3 WHERE tbl3_field=@parameter
DELETE FROM tbl4 WHERE tbl4_field=@parameter

2 个答案:

答案 0 :(得分:0)

1)使参数可选 2)提供参数时,使用它来过滤结果 3)当参数为null时,返回所有结果,按参数表示的字段分组。

如:

Select   EmpNum, EmpNameFull, DeptName, HireDate
From     Employee
Where    DeptName = paramDeptName
or   paramDeptName IS NULL

订单      通过DeptName      ,EmpNameFull

答案 1 :(得分:0)

您可以将数组传递给存储过程。这已经通过Stack Overflow上的不同数据库版本和多个解决方案得到了解答:

How to pass an array into a SQL Server stored procedure

在这里

Passing an array of parameters to a stored procedure

另一个解决方案可能是将参数逗号分开并在T-SQL中拆分并循环遍历值 How to split a comma separated string and loop its values in SQL Server (需要字符串参数)。