游标
在游标逐行处理过程中,当需要处理的记录数较大,而且游标处理位于数据库事务内时,速度非常慢。
-- 声明变量 DECLARE @Id AS Int -- 声明游标 DECLARE C_Id CURSOR FAST_FORWARD READ_ONLY FOR SELECT b.Id FROM dbo.Books b; -- 打开游标 OPEN C_Id; -- 取第一条记录 FETCH NEXT FROM C_Id INTO @Id; WHILE @@FETCH_STATUS = 0 BEGIN --逻辑处理 SELECT * FROM dbo.Books WHERE Id = @Id; -- 取下一条记录 FETCH NEXT FROM C_Id INTO @Id; END; -- 关闭游标 CLOSE C_Id; -- 释放游标 DEALLOCATE C_Id;