以下的文章主要向大家讲述的是实现SQL Server动态游标的创建步骤,以及对其实际操作功能,参数描述,以及创建SQL Server动态游标的基本思路的描述,下面就是文章的主要内容的详细描述。
- CREATE PROCEDURE Usp_CreateCursor(@Select_Command varchar(8000),@Cursor_Return CURSOR VARYING OUTPUT) AS
存储过程名称:Usp_CreateCursor
功能描述: 根据指定的SELECT创建一个动态游标
参数描述: @Select_Command ---SELECT语句;@Cursor_Return ---要返回的游标变量
思路: SQL Server动态游标的关键是不知如何去构造它的SELECT语句,因为SELECT是个字符串表量,定义时不能直接用它,但它可以来源于表。
所以我的目的就是创建一个统一的表,从中取数据不就可以了。建表有一定的语法规则,所以就应该根据栏位列表生成相应的
格式,这个可以从系统表中获取。关键的问题是如何将数据插入到临时表,我摸索出一条语句可
实现这个功能,那就是INSERT INTO <TABLE_NAME> EXECUTE <SQL>,而SQL7.0的帮助未讲。有表有数据就可以创建了。
Declare @Select_Command_Temp Varchar(8000), ---存放SELECT临时语法
@Table_List varchar(255), ---存放表的列表
@Column_List varchar(8000),---存放栏位列表
@Table_Name varchar(30),---存放单独表名
@Column_Name varchar(30),---存放单独栏位名(但有可能是*)
@Column_Syntax varchar(8000),---存放栏位建表时的语法(综合)
@Column_Name_Temp varchar(30),---存放栏位名称
@Column_Type_Temp varchar(30),----存放栏位类型
@Column_Syntax_Temp varchar(8000),---存放栏位建表时的语法(单个)
@Column_Length_Temp int,---存放栏位长度
@Column_Xprec_Temp int,---存放栏位精度
@Column_Xscale_Temp int,---存放栏位小数位数
@From_Pos int,---存放from的位置
@Where_Pos int,---存放where的位置
@Having_Pos int,---存放having的位置
@Groupby_Pos int,---存放groupby的位置
@Orderby_Pos int,---存放orderby的位置
@Temp_Pos int,---临时变量
@Column_Count int,---存放栏位总数
@Loop_Seq int---循环步进变量
以上的相关内容就是对SQL Server动态游标的创建的介绍,望你能有所收获。
【编辑推荐】