技术开发 频道

微软SQL Server支持的四种游标类型

  【IT168 技术】游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) 游标与 SQL Server 中使用的游标类似。本节将给大家详细的介绍它们。

  系列文章:

  游标脚本性能问题详解之相关知识讲解篇

  游标脚本性能问题详解之游标分类特点篇

  微软SQL Server数据库的两种请求游标

  游标脚本性能问题详解之解决方案篇

  微软SQL Server支持的三种游标实现

  SQL Server Compact 3.5 支持下列游标类型:

        1、 基表

        2、 静态

        3、 只进

        4、 只进/只读

        5、 键集驱动

  一、基表游标

  基表游标是可用的最低级别的游标。 这些游标直接在存储引擎上工作,是所有支持的游标类型中速度最快的游标。 基表游标可以最低开销向前或向后滚动,并且可以更新。

  您还可以直接在索引上打开游标。 此类游标支持索引,以便对表中的行进行排序、允许查找特定值以及基于索引中的值的范围对行进行限制。

  基表游标具有动态成员身份。 这意味着,在同一个表上打开的两个游标可以立即看见对数据的插入、删除和更改(假定它们两个都在同一事务作用范围内)。 由于可以更新基表游标,因此客户端可以使用此类游标来更改基本数据。

  基表游标无法表示查询结果。 查询结果(例如 SELECT * FROM tablename)无法通过基表游标返回。 而是使用支持的查询结果游标返回结果。

  下面的示例说明如何使用 ADO .NET 获取基表游标:

  //Base Table Cursor

  cmd.CommandText
= "tablename";

  cmd.CommandType
= CommandType.TableDirect;

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

  下面的示例说明如何使用 ADO .NET 获取索引游标:

  cmd.CommandText = "tablename";

  cmd.IndexName
= "indexname";

  cmd.CommandType
= CommandType.TableDirect;

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

  二、静态游标

  静态游标(在以前的 SQL Server Compact 3.5 版本中称为可滚动查询游标)可以创建和存储结果集的完整副本。 当用户显式请求检索的长整型值数据时例外。 只有在需要时才填充此结果集。 这与 SQL Server 不同,后者在创建游标时就会填充结果集。 静态游标支持向后滚动和向前滚动,但不支持更新。 静态游标无法看见外部对不敏感的数据所做的更改。 在游标的生存周期内将缓存查询结果。 尽管静态游标比只进游标功能更强,但静态游标速度较慢,并且会使用更多的内存。 建议只有在需要滚动并且键集游标不合适时再考虑使用静态游标。

  下面的示例说明如何使用 ADO.NET 获取静态游标:

  cmd.CommandText = "Select * from tablename";

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Insensitive);
0
相关文章