SQL Server 数据库之使用系统过程查游标

使用系统过程查看游标

  • 1. 概述
  • 2. 用 sp_cursor_list 查看当前连接打开的游标
  • 3. 用 sp_describe_cursor 查看游标特性

1. 概述

在 SQL Server 数据库中,系统提供了多种存储过程让用户查询游标的基本信息,常用的存储过程有 sp_cursor_listsp_describe_bursorsp_describe_columns
用户能使用这些系统提供的存储过程查询游标的基本属性游标结果集中字段的属性等内容;

2. 用 sp_cursor_list 查看当前连接打开的游标

sp_cursor_list 主要用于查看当前连接并打开的服务器游标的基本属性;
语法格式如下:

sp_cursor_list [ @cursor_return = ] cursor_variable_name OUTPUT
,[ @cursor_scope = ] cursor_scope
  • [ @ cursor_return = ]cursor_variable_name:已声明的游标变量的名称;cursor_variable_name 的数据类型为 cursor,无默认值;游标时只读的可滚动动态游标;
  • [ @cursor_scope = ]cursor_scope:指定要报告的游标级别;cursor_scope 的数据类型为 int,无默认值;

注意: sp_cursor_list 是一个含有游标类型变量 @cursor_retrun,且有 OUTPUT 保留字的系统过程,游标变量 @cursor_return 中的结果集与 pub_cur 游标中的结果集是不同的;

3. 用 sp_describe_cursor 查看游标特性

使用 sp_describe_cursor 存储过程查看服务器游标的基本信息;
语法格式如下:

sp_describe_cursor [ @cursor_return =  ] output_cursor_variable OUTPUT
{ [, [@cursor_source = ] N'local'
	, [@cursor_identity = ] N'local_cursor_name']
		| [,[@cursor_source = ] N'global'
	,[@cursor_identity = ] N'glcbal_cursor_name']
	| [, [@curosr_scoure = ] N'variable'
	, [@cursor_identity = ] N'input_cursor_variable']
	}
  • [@cursor_return=]outp_cursor_variable OUTPUT:声明游标变量的名称,该变量接收游标输出;output_cursor_variable 的数据类型为 cursor,没有默认值,调用 sp_descible_cursor 时,不能与任何游标相关联,返回的游标时可回滚的,参数是 nvarchar(30)
  • [@cursor_identity=]N'local_cursor_name']:由具有 LOCAL 关键字或默认设置为 GLOBAL 的 DECLARE CURSOR 语句创建的游标名称;local_cursor_name 的数据类型为 nvarchar(238);
  • [@cursor_identity=]N'global_cursor_name']:由具有 GLOBAL 关键字或默认设置为 global 的 DECLARE CURSOR 语句创建的游标的名称;也可以是有 ODBC 应用程序打开,再通过调用 SQLSetCursorName 对游标命名的 API 服务器游标的名称;global_cursor_name 的数据类型是 nvarchar(128)
  • [@cursor_identity=]N'input_cursor_variable']:与开放游标相关联的游标变量的名称;input_cursor_variable 的数据类型为 nvarchar(128)

你可能感兴趣的:(SQL,server,数据库,sqlserver,游标)