WEB开发网
开发学院数据库MSSQL Server MS SQL入门基础:声明游标 阅读

MS SQL入门基础:声明游标

 2007-01-03 09:20:44 来源:WEB开发网   
核心提示: 注意:如果基础表未包含惟一的索引或主键,则一个KEYSET游标将回复成STATIC游标,MS SQL入门基础:声明游标(4), DYNAMIC指明基础表的变化将反映到游标中,使用这个选项会最大程度上保证数据的一致性,可以通过系统过程对其特性进行设置,对那些有权限对视图、表或某些列执行SEL

注意:如果基础表未包含惟一的索引或主键,则一个KEYSET游标将回复成STATIC游标。 DYNAMIC

指明基础表的变化将反映到游标中,使用这个选项会最大程度上保证数据的一致性。然而,与KEYSET 和STATIC 类型游标相比较,此类型游标需要大量的游标资源。 FAST_FORWARD

指明一个FORWARD_ONLY, READ_ONLY 型游标。此选项已为执行进行了优化。如果SCROLL 或FOR_UPDATE 选项被定义,则FAST_FORWARD 选项不能被定义。 SCROLL_LOCKS

指明锁被放置在游标结果集所使用的数据上当。数据被读入游标中时,就会出现锁。这个选项确保对一个游标进行的更新和删除操作总能被成功执行。如果FAST_FORWARD选项被定义,则不能选择该选项。另外,由于数据被游标锁定,所以当考虑到数据并发处理时,应避免使用该选项。 OPTIMISTIC

指明在数据被读入游标后,如果游标中某行数据已发生变化,那么对游标数据进行更新或删除可能会导致失败。如果使用了FAST_FORWARD 选项,则不能使用该选项。 TYPE_WARNING

指明若游标类型被修改成与用户定义的类型不同时,将发送一个警告信息给客户端。

注意:不可以将SQL_92的游标语法规则与MS SQL SERVER的游标扩展用法混合在一起使用。   下面我们将总结一下声明游标时应注意的一些问题。

如果在CURSOR 前使用了SCROLL 或INSENSITIVE 保留字,则不能在CURSOR 和FOR select_statement 之间使用任何的保留字。反之同理。

如果用DECLARE CURSOR 声明游标时,没有选择READ_ONLY、 OPTIMISTIC 或SCROLL_LOCKS 选项时,游标的缺省情况为:

如果SELECT 语句不支持更新,则游标为READ_ONLY;

STATIC 和FAST_FORWARD 类型的游标缺省为READ_ONLY; 

DYNAMIC 和KEYSET 游标缺省为OPTIMISTIC。

我们仅能在Transact-SQL 语句中引用游标,而不能在数据库API 函数中引用。

游标被声明以后,可以通过系统过程对其特性进行设置。

对那些有权限对视图、表或某些列执行SELECT 语句的用户而言,它也具有使用游标的缺省权限。

查看全套"MS SQL入门基础教程">>>>>

上一页  1 2 3 4 

Tags:MS SQL 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接