将参数传递给存储过程

时间:2014-04-18 03:19:45

标签: sql sql-server cursor procedure

有人可以帮助我或指向我可以找到有关如何将列的所有值作为参数传递到存储过程的信息吗?我需要对列中的所有值运行存储过程...

例如,“Color”列的值为黑色,金色,绿色和蓝色。我希望我的存储过程一次获取一个值并对它们执行过程

1 个答案:

答案 0 :(得分:0)

为列中的每个记录执行过程的唯一方法是使用游标方法。     DECLARE @color varchar(100)

DECLARE cc CURSOR FAST_FORWARD FOR
SELECT color FROM Table
OPEN cc
FETCH NEXT FROM cc INTO @color
WHILE @@FETCH_STATUS = 0 BEGIN 

EXEC procedure @color

FETCH NEXT FROM cc INTO @color
END
CLOSE cc
DEALLOCATE cc

最好的解决方案是使用表值参数。这可以允许创建一个接受临时表作为参数的过程。它将允许您坚持基于集合的方法并实现最佳性能。