如何在没有光标的情况下浏览表中的所有记录?

时间:2014-05-15 19:31:54

标签: sql tsql sybase database-performance sybase-ase

这是针对sybase ase 12.5的情况。没有CTE。

假设我有一个表mytab。我想浏览这个表中的所有行,并为每一行做一些事情。一个简单的解决方案就是光标

Declare mycur Cursor For
  Select * from mytab For Read Only

Open mycur 

Fetch mycur Into ...

While @@sqlstatus = 0

Begin
  ....
  insert into tab2(...)
  Fetch mycur Into ...

End

Close mycur

Deallocate Cursor mycur

由于游标,此解决方案性能不佳。

什么是最佳性能的最佳解决方案?

1 个答案:

答案 0 :(得分:4)

要将数据从一个表插入另一个表,您可以

insert into tab2(col1, col2)
Select col4, col7 
from mytab