首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将游标保存在Try catch块中是一种好的做法吗?

将游标保存在Try catch块中是一种好的做法吗?
EN

Stack Overflow用户
提问于 2011-11-18 16:25:45
回答 1查看 2.3K关注 0票数 2

大多数情况下,当我在SQL Server中编写游标时,我会将其放在try/catch块中。在catch块中,我释放并关闭了游标的活动。

你的意见是什么?这是一个好的实践吗?

EN

回答 1

Stack Overflow用户

发布于 2011-11-26 22:02:51

仔细考虑一下,我想您会同意对游标使用try/catch是一种糟糕的做法。

如果在声明或打开游标时遇到错误,则catch块中的CLOSE将不起作用,它需要一个成功打开的游标。所以你不应该在使用中包含这些部分。

稍微移到循环和FETCH上。我看不到在简单的循环语句中会发生错误,如果在FETCH中发生错误,那么@@FETCH_STATUS将被设置为-1,而不是引发错误。因此,包含这些部分是没有意义的。

现在,我们开始使用光标完成的操作。如果这里发生错误,您可以修复它并继续,将其记入日志并继续下一行,或者显式地在操作的错误处理中中断循环。您的解决方案将使您跳出catch块可能起到一些作用的操作。

在完成循环之后,无论是因为中断、提取错误还是记录的结尾,您都可以在没有catch块的情况下关闭和释放记录,不需要重复自己。

因此,您正在编写无用的代码,远离错误的原因和潜在的解决方案,在最坏的情况下,将原本报告的错误替换为关于在未打开的游标上调用CLOSE的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8179605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档