sql server 2012在存储过程中创建临时视图

问题描述:

是否可以在过程上创建视图(临时)。 可能的意思是它使数据库过载。sql server 2012在存储过程中创建临时视图

请建议我,并且是另一种方式。

我的需求是合并所有的表格,使PDF文件基于条件。

create procedure sp1 
as 
begin 

create view temp_view as (select * from tabl_1 
     union all 
     select * from tabl_2 
     union all 
     select * from tabl_3 
     union all 
     select * from tabl_4 
     union all 
     select * from tabl_5 
     union all 
     select * from tabl_6 
     union all 
     select * from tabl_7 
     union all 
     select * from tabl_8)cte; 
select col1,col2,col3 from temp_view where col1=val; 
drop view temp_view; 
end 
+0

1)创建一个视图2)然后使用SP内的视图 – wiretext

+0

你想创建一个视图,所有表合并的原因是什么?还有其他方法可以创建数据库的备份! – cfi

+0

也根据条件@cfi –

你可以做下面的步骤(不创建一个视图):

1.创建一个缓存表的所有记录,存储从这些表
2.创建一个作业(SP)或触发以定期填充缓存表(例如10分钟)
3.使用报表SP中的缓存表。它会一直给你更新的报告

+0

这意味着缓存表占用内存。但在极少数情况下,只有我需要调用该视图。 –

+0

其实我是新来的MS SQL服务器。我想你的答案是创建sp1来生成#cahe_tbl表并为#cahe_tbl表设置时间限制。然后创建sp2 step 1->调用sp1,step - > 2选择#cahe_tbl。对? –

+0

如果它罕见的情况下,那么你可以直接使用查询,不需要改变它。 – Biswabid