在 SQL Server 中,SELECT 语句并不总是与服务器上的游标关联。默认情况下,SQL Server 只是把 SELECT 语句的结果集合行依次返回给客户。SELECT 一执行,数据流就开始了。结果集数据流也可以由存储过程的 SELECT 语句返回。此外,对于单个 EXECUTE 语句,单个存储过程或一批命令可能返回多个结果集。
一旦这些默认结果集可用,SQL Server 客户就负责提取它们。对于默认结果集,客户的提取不产生到服务器的往返。相反地,对默认结果集的提取可将数据从网络缓冲区读取到程序变量中。默认结果集模型创建了一种有效的机制,在通过网络的一次往返,向客户机返回多行数据。将网络往返次数最小化,通常是改善客户/服务器应用程序性能最重要的因素。
和 Oracle 游标相比,默认结果集赋予了 SQL Server 客户应用程序更多的职责。SQL Server 客户应用程序必须立即提取 EXECUTE 语句返回的所有结果集行。如果应用程序需要逐步地将行提供给程序的其它部分,它必须将行缓存在一个内部数组中。如果它未能提取所有的结果集行,则与 SQL Server 连接仍然保持繁忙。