`
yin_jw
  • 浏览: 49118 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

在存储过程中利用游标创建临时表的方法(转)

Go 
阅读更多
--创建存储过程
CREATE PROCEDURE MyProce
--定义参数
     @Sid int
AS
BEGIN
--创建临时表
CREATE TABLE #Temp(ID INT, Name Varchar(50))
--定义变量
DECLARE @v_temp int
--变量赋值
SET @v_temp = isnull(@v_temp,0)
--为"OilBookIn"表创建一个游标
DECLARE MyCursor CURSOR FOR SELECT Id FROM student where Id=@Sid
--打开游标
OPEN MyCursor
--提取游标值并插入变量中
FETCH NEXT FROM MyCursor INTO @v_temp
--循环提取游标值
WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT #Temp(ID,Name)
    SELECT ID,Name FROM student WHERE Id = @v_temp
    FETCH NEXT FROM MyCursor INTO @v_temp
END
--返回结果
SELECT ID,Name FROM #Temp
--关闭游标
CLOSE MyCursor
--释放游标
DEALLOCATE MyCursor
END
GO

--执行存储过程
Exec MyProce @Sid=1

--调用存储过程

string connstr = "server=(local);uid=sa;pwd=admin;database=test";
SqlParameter parm = new SqlParameter("@Sid", 1);
DataTable dt = SqlHelper.ExecuteDataset(connstr, "MyProce", parm).Tables[0];
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
 
分享到:
评论

相关推荐

    存储过程:利用游标+临时表实现查询

    本存储过程的目的是利用游标和临时表来实现动态查询,主要用于查询监测设备的状态及目标监测设备状态。下面我们将深入探讨存储过程的使用优势、游标的概念和使用步骤,以及在MySQL中如何实现游标。 1. 存储过程的...

    存储过程,要用到指针,临时表

    在存储过程中,你可以创建临时表来存储查询结果,然后进行进一步的处理或联接操作。 在C#中,使用VS2005开发数据库应用程序时,可以创建和调用存储过程。ADO.NET库提供了SqlCommand对象,用于执行存储过程。你可以...

    在Sql Server数据库中利用存储过程实现动态交叉表.pdf

    然后,使用游标来遍历查询结果集,并将结果存储在临时表中。最后,使用动态SQL来生成交叉表。 在实例中,本文使用了人力资源管理系统中的薪资管理模块,来展示交叉表的优势。在这个模块中,客户要求员工的工资表...

    oracle创建临时表空间文档及工具

    本文档将深入探讨如何在Oracle中创建临时表空间,并介绍一款方便的一键导入、导出工具。 首先,我们来看如何创建临时表空间。在Oracle中,创建临时表空间的SQL语句通常如下: ```sql CREATE TEMPORARY TABLESPACE ...

    DB2游标及动态SQL

    创建临时表的一般语法如下: ```sql DECLARE GLOBAL TEMPORARY TABLE table_name AS (FULL SELECT) DEFINITION ONLY EXCLUDING IDENTITY COLUMN ATTRIBUTES ON COMMIT DELETE ROWS NOT LOGGED IN temp_table_space ...

    不使用游标完成循环功能

    在创建临时表时,我们通常会添加一个主键或唯一索引来加速查询。在示例代码中,创建了一个名为`#tbl`的临时表,其中包含一个名为`Value`的列,用于存储数据,以及一个自增的标识列`ID`。 接着,我们向临时表中插入...

    NC6.5 数据库参考脚本及临时表空间配置.pdf

    此外,还展示了如何调整tempdb数据库(SQLServer的系统数据库,用于存储临时表和游标等)的大小。 描述中的“Oracle参考脚本”表明文档还会包含创建Oracle数据库的脚本。Oracle数据库是甲骨文公司的一个对象关系...

    sql 游标详解

    - **`INSENSITIVE`**:该关键字表示服务器将游标定义所选取的数据记录存放在临时表中,这样即使基础表的数据发生变化也不会影响游标的数据。 - 使用场景:当SELECT语句中使用了`DISTINCT`、`GROUP BY`、`HAVING`、`...

    SQL Server2000游标例子

    本文主要探讨了在SQL Server 2000中如何利用游标处理数据,并通过一个具体的示例来展示游标的使用方法。 #### 核心知识点解析 ##### 1. 游标简介 在SQL Server 2000中,游标是一种用于处理结果集中的行的机制。它...

    oracle游标优化

    然而,在实际应用过程中,不当的游标使用可能会导致性能问题,因此对游标的优化就显得尤为重要。 #### Oracle游标的基本概念 1. **定义**:在Oracle中,游标是一种服务器端的工作区,用来保存SELECT语句的结果集。...

    在BIRT(百灵报表)中使用存储过程创建数据源

    在BIRT(百灵报表)中使用存储过程创建数据源是一项关键技能,尤其对于需要从数据库获取复杂数据的报表设计者来说。BIRT是一个开源的报表系统,它提供了丰富的功能来帮助用户创建、设计和展示各类报表。这篇文章将...

    SQL Server如何通过创建临时表遍历更新数据详解

    在创建临时表后,可以使用`WHILE`循环配合`EXISTS`子句来遍历临时表中的每一行。在这个循环内部,首先设置一个计数器`@Num`,然后每次循环都从临时表中选取第一条记录,将ID和Name赋值给对应的变量。接着,可以执行...

    oracle 临时表使用例子并用CURSOR返回结果集的例子

    现在,我们将利用游标(CURSOR)来演示如何从临时表中检索数据。游标是处理结果集的一种方式,它可以逐行处理数据,而不必一次性加载整个结果集。以下是一个使用游标返回临时表结果集的例子: ```sql DECLARE ...

    SQL Server使用游标处理Tempdb究极竞争-DBA问题-程序员必知

    在SQL Server中,tempdb是一个非常关键的系统数据库,它用于存储临时对象,如临时表、表变量和工作集。然而,tempdb的使用经常伴随着性能竞争问题,尤其是在高并发的环境中。这个问题对于DBAs(数据库管理员)和...

    oracle游标和异常处理

    在这个例子中,首先定义了一个游标`emp_cursor`来获取`emp`表中empno为7788的雇员的姓名和职务。接着打开游标,并使用`FETCH`语句提取数据,最后关闭游标。 #### 四、异常处理 在Oracle PL/SQL中,**异常处理**是...

    oracle存储过程写法

    根据提供的Oracle存储过程示例,我们可以详细解析其中的关键知识点,包括存储过程的创建、游标的使用、临时表的创建及数据处理等。 ### 存储过程的创建与使用 存储过程是在数据库中编写的SQL代码块,它可以接受...

    mysql的存储过程、游标 、事务实例详解

    如果正式表中没有匹配的记录,则将数据插入正式表并删除临时表中的对应记录。同时,使用计数器`counts`控制每处理1000条数据提交一次事务,以提高性能。如果在处理过程中出现错误,会立即回滚事务并设置标记,以便...

    DB2存储过程开发实践

    临时表允许存储过程在执行过程中存储中间结果,避免了重复计算和冗余数据访问。然而,创建和使用临时表也需谨慎,不当的设计可能会导致内存资源过度消耗或性能下降。因此,开发者应在评估存储过程的具体需求后,决定...

    SQL Server的通用分页存储过程 未使用游标,速度更快!

    3. 如果输入的SQL查询语句不包含`FROM`,则假设它是一个表名,存储过程会将表名与`SELECT`和标识列一起插入,创建临时表。 4. 执行修改后的SQL语句,填充临时表。 5. 计算分页所需的行范围。根据当前页码和每页...

    sybase数据库存储过程编写经验以及方法

    4. 数据量较大且需建立索引时,将创建临时表和建立索引的过程放在单独的子存储过程中,确保系统能有效利用临时表索引。 5. 存储过程结束时,记得显式删除临时表,先`TRUNCATE TABLE`,再`DROP TABLE`,以避免长时间...

Global site tag (gtag.js) - Google Analytics