我正在查询,并且已从Microsoft的select语句的TSQL“ FOR BROWSE”选项中找到了最少的文档。

我已经看到FOR BROWSE被记录为游标的一个选项,但是我找不到使用它的任何好例子,或者找不到在SELECT语句上使用FOR BROWSE的理由。

在TSQL SELECT语句中使用FOR BROWSE的充分理由是什么?

我正在使用SQL Server 2008和2012。

最佳答案

据我所知。它似乎是用于在应用程序中实现optimistic concurrency control的接口,在该应用程序中,一个或多个用户将同时访问和更新来自同一源的数据。它似乎还可以与兼容的前端库(DB-Library)结合使用。但是,这似乎是一种过时的机制,因为您无需使用“ For Browse”语句就可以实现上述所有功能。这可以通过创建两个DBPROCESS结构的进一步确认,这两个结构是DB库(不推荐使用的C库)调用“ dbopen”的结果。


此外,浏览模式需要两种DBPROCESS结构:一种用于
选择数据,然后根据选择的数据进行更新
数据。 src


Here is an example与DB-Library一起使用“用于浏览”查询。

最终,可以合理地得出结论,为了向后兼容,该机制仍然存在。因此,除非您使用DB-Library维护基于C的客户端,否则我不必担心此sql“ for clause”。

其他来源


SQL Server Reference Manual - Browse Mode
Additional information about the FOR BROWSE option
Using browse mode instead of cursors


再观察一次


用FOR BROWSE声明的游标必须等待未提交的更改
(由任何人(包括光标所有者)制作)仅在OPEN期间
CURSOR操作。打开游标后,后续更改不会
使光标等待。重新打开游标时,可以将其阻止
通过未提交的更改。 src

08-16 20:05