下面是在存储过程中临时表的使用
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
--这样就把临时表中的数据都添加到了表中
分享到:
相关推荐
3. **在存储过程中使用**:在存储过程中,可以直接查询、更新或删除这个临时表中的数据。 4. **结束会话**:会话结束后,临时表及其所有数据将自动消失。 ### 事务级临时表 事务级临时表(Transaction-Level ...
3. **存储中间结果**:对于需要多次使用的中间结果,将其存储在临时表中可以避免重复计算。 4. **性能优化**:通过预处理数据并将其存储在临时表中,可以在后续查询中提高性能。 #### 四、注意事项 1. **资源管理...
`ON COMMIT PRESERVE ROWS` 选项确保了即使在事务提交后,临时表中的数据仍保留,直到会话结束。另外,还可以选择 `ON COMMIT DELETE ROWS`,这样在事务提交时,所有行都将被删除。 在存储过程中使用临时表,我们...
在临时表中保存的数据只有对当前会话是可见的,任何会话都不能看到其他会话的数据,即使在当前会话 COMMIT 数据以后也是不可见的。多用户并行不是问题,一个会话从来不阻塞另一个会话使用临时表。临时表比正常表产生...
例如,假设我们有一个名为"ProcessData"的存储过程,它需要使用指针处理一个大型数据集,并在临时表中存储中间结果。在C#代码中,你可以这样调用它: ```csharp using (SqlConnection connection = new ...
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。
创建临时表的基本语法是 `CREATE TEMPORARY TABLE`,通常在执行大型查询后,将结果存储在临时表中可以提高效率。例如,以下是一个创建临时表的例子: ```sql CREATE TEMPORARY TABLE tmp_table_name ( column1 ...
Mysql 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享
局部临时表是一种只能在一个会话中使用的临时表,当会话结束时,所有的数据都会被自动删除。下面是如何创建一个局部临时表的例子: ```sql CREATE LOCAL TEMPORARY TABLE TempTable (id NUMBER, name VARCHAR2(50))...
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
1. **会话级临时表**:这类临时表中的数据仅在当前会话期间有效。当会话结束时,临时表中的所有数据会被自动清除。 2. **事务级临时表**:这类临时表中的数据仅在一个事务期间有效。当事务提交或回滚后,临时表中的...
Oracle 临时表用法 Oracle 临时表是一种特殊的表结构,它可以在数据库中临时存储...但是,使用临时表时需要注意一些问题,例如避免在存储过程中创建临时表,避免在运行时创建临时表,以免导致数据库中的表数量增加。
本文将详细解析一个特定的Oracle函数——`NS_DNAF_GetPaidUpDeposit`,该函数旨在执行查询操作,并将结果插入到一个临时表中。通过分析该函数的结构、参数以及执行逻辑,我们可以更好地理解其工作原理及其应用场景。...
需要注意的是,如果在存储过程内部创建临时表,即使有嵌套的存储过程,也只能在当前存储过程及其嵌套过程中使用该临时表。 5. **命名限制**:本地临时表的名称长度不能超过116个字符,因为SQL Server会在内部添加...
- **外存临时表(on-disk)**:这类临时表存储在磁盘上,可以存储更大容量的数据,但相比内存临时表,其读写速度较慢。 **1.2 临时表的分类** 根据创建时机的不同,临时表还可以分为两种类型: - **自动创建的...
其中,对于存储过程的调试是开发者日常开发工作中的一个重要环节,SAP HANA为存储过程提供了内置的调试功能,这使得开发者能够方便地验证逻辑的正确性,追踪代码执行流程,检查变量值变化,从而对程序中的错误进行...
1. **数据汇总与计算**:在进行复杂的数据汇总或计算时,可以先将相关数据加载到临时表中进行预处理,然后再进行后续操作。 2. **批量数据处理**:当需要处理大量数据时,可以使用临时表存储中间结果,从而提高处理...
临时表是一种特殊的表,用于存储在单个查询或一系列查询中使用的数据,并且在不再需要时可以轻松地删除这些数据。根据其作用范围的不同,临时表分为两种类型:局部临时表和全局临时表。 1. **局部临时表**:这种...
临时表在SQL Server中提供了临时存储和数据共享的功能,对于处理复杂查询、存储过程和多步骤操作非常有用。正确理解和使用临时表能有效提升数据库性能和编程效率。然而,必须注意临时表的可见性和生命周期,以免导致...
标签中的"Delphi实现"指的是Delphi编程语言的使用,"创建Mysql库的临时表"是指在MySQL数据库中创建临时数据存储结构,"使用ODBC实现"是指通过ODBC接口与MySQL进行交互,"数据库"涵盖了整个数据库操作的范围。...