今天看到一篇文章寫的自己整理記錄下,據說比用游標快。 ...
今天看到一篇文章寫的自己整理記錄下,據說比用游標快。
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;