首页 > 数据库技术 > 详细

SQL 临时表或表变量替代游标

时间:2014-02-28 01:56:53      阅读:579      评论:0      收藏:0      [点我收藏+]

1.如果表没有自动增长的标识列(int) 使用临时表

SELECT IDENTITY(int) NewID ,.. INTO #tmp FROM YouTable

2.表有标识列 使用表变量

INSERT INTO @tmpTable
SELECT ..., NewID=(SELECT COUNT(*) FROM YouTable b WHERE b.aid<=a.aid) FROM YouTable a

当有了从 1到~d 的连续NewID时, 你就可以用循环来操作每一条记录了.
这个NewID你就可以当它是指针标识.

bubuko.com,布布扣
DECLARE @i INT,@cnt INT
SET @i=1
SELECT @cnt=COUNT(*) FROM YourTable
WHILE @i<@cnt
     BEGIN
           SELECT .... FROM #tmp(或@tmpTable依上面情况不同) WHERE NewID=@i
           ...
           SET @i=@i+1
     END

DROP TABLE...
bubuko.com,布布扣

SQL 临时表或表变量替代游标,布布扣,bubuko.com

SQL 临时表或表变量替代游标

原文:http://www.cnblogs.com/Yellowshorts/p/3570805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!