2015-09-14 149 views
0

是否可以在過程上創建視圖(臨時)。 可能的意思是它使數據庫過載。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 –

回答

0

你可以做下面的步驟(不創建一個視圖):

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

相關問題