`
zhaolicric
  • 浏览: 145919 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

存储过程中临时表的使用

    博客分类:
  • SQL
阅读更多

下面是在存储过程中临时表的使用

create PROCEDURE insertGoodsPlan
(
	@billCode varchar(50)
)
AS
BEGIN
  declare @goodsId nvarchar(30)
  declare @gcount numeric --需求数量
  declare @KHWLID nvarchar(30)

begin 

select @KHWLID=WLID from SALEORDER where BILLCODE=@billCode

select a.goodsid,a.UNITID,sum(GCOUNT) as XQCount,
       (select sum(ENCount) as ENCount from (
                     select sum(ia.STCount+ia.CICount-ia.COCount) as ENCount from BASE_STGOODS as ia where ia.GOODSID=a.goodsId and ia.WLID=@KHWLID
                     union 
                     select sum(ia.STCount+ia.CICount-ia.COCount) as ENCount from BASE_STGOODS as ia where ia.GOODSID=a.goodsId and (ia.WLID='' or ia.WLID is null)
                     ) as ib
       ) as ENCount,
       (select sum(GCOUNT) as GCOUNT from PRODUCE_TASKSDETAIL where GOODSID=a.goodsid and ISSubtract='0') as GCOUNT
       into #a
from PRODUCE_TASKSDETAIL as a
where SALEORDER_BILLCODE=@billCode group by a.goodsid,a.UNITID



--    向物料需求计划表中插入相应的数据
		insert into PRODUCE_PLANGOODS(SALEORDER_BILLCODE,GOODSID,KHWLID,UNITID,XQCount,ENCount,KYCount)
              select @billCode,goodsId,@KHWLID,UNITID,gCount,ENCount,ENCount-GCOUNT from #a

 drop table #a
end
end

 临时表

 

1.可以创建本地和全局临时表。本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。

2.本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
SQL 语句使用 CREATE TABLE 语句中为 table_name 指定的名称引用临时表:
CREATE TABLE #MyTempTable (cola INT PRIMARY KEY)
INSERT INTO #MyTempTable VALUES (1)
drop table #MyTempTable

select * into #a from tableName  --把表结构和数据都添加到了临时表中

insert into PRODUCE_PLANGOODS
(
SALEORDER_BILLCODE,
GOODSID,
KHWLID,
UNITID,
XQCount,
ENCount,
KYCount)
 select @billCode,goodsId,@KHWLID,UNITID,gCount,ENCount,
ENCount-GCOUNT from #a

 --这样就把临时表中的数据都添加到了表中 
 

分享到:
评论

相关推荐

    Oracle存储过程中使用临时表

    3. **在存储过程中使用**:在存储过程中,可以直接查询、更新或删除这个临时表中的数据。 4. **结束会话**:会话结束后,临时表及其所有数据将自动消失。 ### 事务级临时表 事务级临时表(Transaction-Level ...

    存储过程中的临时表使用方法

    3. **存储中间结果**:对于需要多次使用的中间结果,将其存储在临时表中可以避免重复计算。 4. **性能优化**:通过预处理数据并将其存储在临时表中,可以在后续查询中提高性能。 #### 四、注意事项 1. **资源管理...

    Oracel储存过程用临时表

    `ON COMMIT PRESERVE ROWS` 选项确保了即使在事务提交后,临时表中的数据仍保留,直到会话结束。另外,还可以选择 `ON COMMIT DELETE ROWS`,这样在事务提交时,所有行都将被删除。 在存储过程中使用临时表,我们...

    主流数据库中临时表的使用

    在临时表中保存的数据只有对当前会话是可见的,任何会话都不能看到其他会话的数据,即使在当前会话 COMMIT 数据以后也是不可见的。多用户并行不是问题,一个会话从来不阻塞另一个会话使用临时表。临时表比正常表产生...

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

    例如,假设我们有一个名为"ProcessData"的存储过程,它需要使用指针处理一个大型数据集,并在临时表中存储中间结果。在C#代码中,你可以这样调用它: ```csharp using (SqlConnection connection = new ...

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    mysql临时表用法分析【查询结果可存在临时表中】

    创建临时表的基本语法是 `CREATE TEMPORARY TABLE`,通常在执行大型查询后,将结果存储在临时表中可以提高效率。例如,以下是一个创建临时表的例子: ```sql CREATE TEMPORARY TABLE tmp_table_name ( column1 ...

    Mysql 存储过程(输入,返回),函数,临时表

    Mysql 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享

    Oracle中临时表的创建

    局部临时表是一种只能在一个会话中使用的临时表,当会话结束时,所有的数据都会被自动删除。下面是如何创建一个局部临时表的例子: ```sql CREATE LOCAL TEMPORARY TABLE TempTable (id NUMBER, name VARCHAR2(50))...

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    Oracle 临时表用法

    1. **会话级临时表**:这类临时表中的数据仅在当前会话期间有效。当会话结束时,临时表中的所有数据会被自动清除。 2. **事务级临时表**:这类临时表中的数据仅在一个事务期间有效。当事务提交或回滚后,临时表中的...

    oracle临时表用法

    Oracle 临时表用法 Oracle 临时表是一种特殊的表结构,它可以在数据库中临时存储...但是,使用临时表时需要注意一些问题,例如避免在存储过程中创建临时表,避免在运行时创建临时表,以免导致数据库中的表数量增加。

    一个选查询后插入到一个临时表的oracle函数

    本文将详细解析一个特定的Oracle函数——`NS_DNAF_GetPaidUpDeposit`,该函数旨在执行查询操作,并将结果插入到一个临时表中。通过分析该函数的结构、参数以及执行逻辑,我们可以更好地理解其工作原理及其应用场景。...

    sql临时表相关介绍

    需要注意的是,如果在存储过程内部创建临时表,即使有嵌套的存储过程,也只能在当前存储过程及其嵌套过程中使用该临时表。 5. **命名限制**:本地临时表的名称长度不能超过116个字符,因为SQL Server会在内部添加...

    Mysql临时表和派生表

    - **外存临时表(on-disk)**:这类临时表存储在磁盘上,可以存储更大容量的数据,但相比内存临时表,其读写速度较慢。 **1.2 临时表的分类** 根据创建时机的不同,临时表还可以分为两种类型: - **自动创建的...

    SAP HANA 中调试存储过程

    其中,对于存储过程的调试是开发者日常开发工作中的一个重要环节,SAP HANA为存储过程提供了内置的调试功能,这使得开发者能够方便地验证逻辑的正确性,追踪代码执行流程,检查变量值变化,从而对程序中的错误进行...

    简单理解数据库临时表

    1. **数据汇总与计算**:在进行复杂的数据汇总或计算时,可以先将相关数据加载到临时表中进行预处理,然后再进行后续操作。 2. **批量数据处理**:当需要处理大量数据时,可以使用临时表存储中间结果,从而提高处理...

    sql server 临时表详解与示例

    临时表是一种特殊的表,用于存储在单个查询或一系列查询中使用的数据,并且在不再需要时可以轻松地删除这些数据。根据其作用范围的不同,临时表分为两种类型:局部临时表和全局临时表。 1. **局部临时表**:这种...

    临时表操作详解SQL Server 实例

    临时表在SQL Server中提供了临时存储和数据共享的功能,对于处理复杂查询、存储过程和多步骤操作非常有用。正确理解和使用临时表能有效提升数据库性能和编程效率。然而,必须注意临时表的可见性和生命周期,以免导致...

    MysqlODBC临时表.rar

    标签中的"Delphi实现"指的是Delphi编程语言的使用,"创建Mysql库的临时表"是指在MySQL数据库中创建临时数据存储结构,"使用ODBC实现"是指通过ODBC接口与MySQL进行交互,"数据库"涵盖了整个数据库操作的范围。...

Global site tag (gtag.js) - Google Analytics