回答

收藏

重用的T-SQL游标的起始位置?

技术问答 技术问答 250 人阅读 | 0 人回复 | 2023-09-12

我在临时表上使用游标的存储过程(我读了一些关于为什么我不想使用游标的信息,但在这种情况下,我相信我仍然需要使用游标)。
! s# c  _% t/ ?7 q0 h2 |$ p4 @4 x在我的过程中,我需要单步浏览表中的行两次。: T' X0 |% }1 B1 I7 k7 ?8 |5 V
声明游标后,游标已通过临时表一次并关闭。当游标重新打开时,游标的位置将保留在表的末尾或重新定位到初始起始位置(即在第一个游标前)?' t9 r! O) o! I, E2 l
或者,要重新定位光标,必须在重新执行前执行 FETCH FIRST”操作吗?0 Y' y8 c: E. i8 s: l
我是否正确假设重新定位和重用游标的成本小于取消和重新分配游标的成本?
2 f3 Y8 V+ p" s/ {. p- Q! A                                                               
1 J# E* i! s+ o, `% k( y. f; R/ W! o    解决方案:                                                               
8 I5 p# C! m' N                                                                分配和重新分配的成本微不足道。游标的缺点是你没有以最好的方式与数据库互动,而不是创建或处置游标所产生的任何特殊费用。
! E2 H' _0 }! @/ m1 k2 i, N我认为没有记录已关闭和重新打开的游标位置的行为,所以你不应该依赖它以任何给定的方式工作。因此,当你再次开始使用它时,你应该重新放置它。+ }1 z6 S3 g8 I" ^3 N* T1 z
而且,没有游标,你可能正在做的事情是可行的。如果我是你,我会考虑问(一个不同的)问题。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则