我有一个SQL存储过程,我需要使用不同的参数执行多次。是否可以执行某种类型的SQL脚本,它会像数组或其他不同参数的数据结构一样多次执行?有什么想法吗?
答案 0 :(得分:5)
您可以使用光标(但如果可以重新构建代码,请尝试YS's answer):
编辑:根据@ YS的建议添加了FAST_FORWARD
DECLARE @param INT
-- getting your parameter from the table
DECLARE curs CURSOR LOCAL FAST_FORWARD FOR
SELECT afield FROM atable WHERE ...
OPEN curs
FETCH NEXT FROM curs INTO @param
-- executing your stored procedure once for every value of your parameter
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC usp_stored_Procedure @param
FETCH NEXT FROM curs INTO @param
END
CLOSE curs
DEALLOCATE curs
答案 1 :(得分:5)
我可能会根据需要重新设计一下(解决方法) - 即:
将要在存储过程中执行的值插入临时表,然后调用存储过程(存储过程将读取临时表)
使用表值参数