【发布时间】:2014-01-06 21:07:03
【问题描述】:
如何从一个选择中循环遍历一组记录?
例如,假设我有一些记录,我希望循环并对每条记录执行一些操作。这是我选择的原始版本:
select top 1000 * from dbo.table
where StatusID = 7
谢谢
【问题讨论】:
-
你想对每条记录做什么?首选是在 SQL 查询中完成工作。除非您需要使用 T-SQL,否则可能需要使用游标。
-
我会使用光标。
-
那会很慢 - 是否不可能重写存储的过程或将其中的一些逻辑移出以以基于集合的方式工作?
-
@Funky 存储过程是做什么的?通常可以以基于集合的方式重写代码(即避免循环)。如果您坚持要执行 RBAR 操作 (simple-talk.com/sql/t-sql-programming/…),那么光标就是您要调查的对象。
-
也许您可以更详细地解释您将如何处理这些数据。在大多数情况下,您可以轻松编写一个 SQL 查询,该查询将在一个操作中完成您需要完成的工作,而不是遍历单个记录。
标签: sql sql-server