在存储过程里创建临时表,往表中直接插入数据

Posted 努力向上的小蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在存储过程里创建临时表,往表中直接插入数据相关的知识,希望对你有一定的参考价值。

 1 CREATE PROCEDURE [dbo].[Proc_PX_Practice]
 2 @PageSize int, --每页多少个
 3 @CurrPage int --当前页
 4 
 5 AS
 6 begin
 7      create table #temp_table(
 8                               Row_ID int identity(1,1) primary key not null,  --Row_ID 自增长
 9                               ItemGuid varchar(50),       --Guid
10                               PlanGuid varchar(50), 
11                               Name varchar(50),          --名称
12                               ItemType int               --类型
13 
14                               )                              
15                     
16 
17     --计划
18     insert into #temp_table(ItemGuid,PlanGuid,Name,ItemType) 
19     (
20     select RowGuid,RowGuid,PlanName,\'0\' from PX_plan
21     )
22 
23     --课程
24     insert into #temp_table(ItemGuid,PlanGuid,Name,ItemType) 
25     (
26     select CourseGuid,PlanGuid,CourseName,\'1\' from PX_PlanCourse where 
27      PlanGuid in (select PlanGuid from #temp_table where ItemType=\'0\')
28      
29     ) 
30 
31     --课件
32     insert into #temp_table(ItemGuid,PlanGuid,Name,ItemType) 
33     (
34     select a.RowGuid,b.PlanGuid,a.Name,\'2\' from PX_CourseWare a, #temp_table b where 
35       a.CourseGuid=b.ItemGuid and b.ItemType=\'1\'
36     )
37 
38 
39     --output
40    declare @StrSql varchar(max)
41    declare @TopIndex int
42    set @TopIndex = (@CurrPage-1)*@Pagesize
43    set @StrSql=\'select top \'+str(@Pagesize)+\' * from #temp_table where  ItemGuid not in (select top \'+str(@TopIndex)+\' ItemGuid from #temp_table order by Row_ID) order by Row_ID \'
44    
45    exec (@StrSql)
46 
47 
48        select * from #temp_table order by ItemType 
49      
50  end
51 
52 
53 
54 
55 
56 
57 
58 GO
View Code

 

以上是关于在存储过程里创建临时表,往表中直接插入数据的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE存储过程创建临时表并插入数据。

oracle 的存储过程中 动态的创建一张表 然后插入一个变量到这个表中,表能动态的创建但是变量不能插入进去

Oracle存储过程创建临时表,插入数据后,怎么返回临时表数据,并在asp.net中接收到datatable中

创建临时表并使用存储过程将数据加载到其中

oracle存储过程查找表数据插入另一个表中。。

SQL临时表使用