码迷,mamicode.com
首页 > 数据库 > 详细

MSSQL一种取代游标的方案

时间:2018-09-10 17:05:35      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:set   table   begin   www.   行号   html   flag   entity   tps   

原文:MSSQL一种取代游标的方案

今天看到一篇文章写的自己整理记录下,据说比用游标快。

DECLARE @字段1 数据类型;
DECLARE @字段2 数据类型;

DECLARE @TMP_WHILE_ID INT;
SELECT TMP_WHILE_ID=IDENTITY(INT,1,1),TMP_WHILE_FLAG=0,

[字段1],[字段2],...

INTO #TMP_WHILE FROM [表名] WHERE [条件]....;

SELECT @TMP_WHILE_ID=MIN(TMP_WHILE_ID) FROM #TMP_WHILE WHERE TMP_WHILE_FLAG=0;
WHILE @TMP_WHILE_ID IS NOT NULL
BEGIN
    --获取当前处理行的信息
    SELECT @字段1=字段1,@字段2=字段2,... FROM #TMP_WHILE WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    
    --<这里自己的处理过程>
    
    --标识当前行已处理完毕
    UPDATE #TMP_WHILE SET TMP_WHILE_FLAG=1 WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    --选择下一行号
    SELECT @TMP_WHILE_ID=MIN(TMP_WHILE_ID) FROM #TMP_WHILE WHERE TMP_WHILE_FLAG=0 AND TMP_WHILE_ID>@TMP_WHILE_ID;
END
DROP TABLE #TMP_WHILE;

 

MSSQL一种取代游标的方案

标签:set   table   begin   www.   行号   html   flag   entity   tps   

原文地址:https://www.cnblogs.com/lonelyxmas/p/9620565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!