declare @MainID int

1. DECLARE curMain CURSOR
FOR
2. SELECT MainID FROM  tblAA where mainid in(...)
3. OPEN curMain

4. FETCH NEXT FROM curMain INTO @MainID
5. WHILE @@Fetch_Status=0
6. BEGIN

7. SELECT @MainID

8. FETCH NEXT FROM curMain INTO @MainID
9. END
10. CLOSE curMain
11. DEALLOCATE curMain

说明:
select的资料只有1500条(2)问题
十分钟还没有执行完,感觉完全卡死。 以下测试,都是在上面的基本上修改测试一:
把2.改成
SELECT top 100 MainID FROM  tblAA where mainid in(...)
SELECT top 1000 MainID FROM  tblAA where mainid in(...)
SELECT top 2000 MainID FROM  tblAA where mainid in(...)
SELECT top 20000 MainID FROM  tblAA where mainid in(...)
速度很快说明数据量不是问题测试二:
把SELECT MainID FROM  tblAA where mainid in(...)先写到一临时表,再游标,也没问题说明字段,类型不是问题 
测试三:
取消4,5,6,7,8,9语句,很正常。说明游 标建立,开启等都没有问题测试四:
只读游 标第一条记录。(即取消 5,6,7,8,9语句)。不行,慢,卡死
大家有没有碰到过类似情况,能不能帮我猜猜原因
谢谢