实现SQL Server动态游标的创建步骤


  本文标签:SQL Server动态游标

  

以下的文章主要向大家讲述的是实现SQL Server动态游标的创建步骤,以及对其实际操作功能,参数描述,以及创建SQL Server动态游标的基本思路的描述,下面就是文章的主要内容的详细描述  。

  1. 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 EXECUTE ,而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动态游标的创建的介绍,望你能有所收获  。