当前位置:首页 > 数据库 > Sqlserver

MSSQL一种取代游标的方案

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

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

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

DECLARE@TMP_WHILE_IDINT;
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_IDISNOTNULLBEGIN--获取当前处理行的信息SELECT@字段1=字段1,@字段2=字段2,... FROM #TMP_WHILE WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    
    --<这里自己的处理过程>--标识当前行已处理完毕UPDATE #TMP_WHILE SET TMP_WHILE_FLAG=1WHERE TMP_WHILE_ID=@TMP_WHILE_ID;
    --选择下一行号SELECT@TMP_WHILE_ID=MIN(TMP_WHILE_ID) FROM #TMP_WHILE WHERE TMP_WHILE_FLAG=0AND TMP_WHILE_ID>@TMP_WHILE_ID;
ENDDROPTABLE #TMP_WHILE;

 

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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐