2010-11-10 81 views
1

我想在SQL Server數據庫中設置一個表,用於存儲一個長而複雜的查詢的結果,這個查詢需要將近一個小時才能運行。運行查詢後,其餘的分析由同事使用Excel數據透視表完成。SQL Server 2008 - 如何自動刪除和創建和輸出表?

我不希望將結果輸出到文本,並希望將它保留在SQL Server中,然後只需將Excel設置爲直接從服務器進行轉接即可。

我的問題是,輸出不會總是有完全相同的列,並且每次手動設置輸出表以INSERT INTO將是單調乏味的。

有沒有辦法根據您選擇的數據類型即時創建表格?

E.g.如果我想運行:

SELECT 
    someInt, 
    someVarchar, 
    someDate 
FROM someTable 

並插入到一個名爲可輸出表,它必須看起來像這樣

CREATE TABLE OutputTable 
(
    someInt int null 
    someVarchar varchar(255) null, 
    someDate date null, 
) ON [primary] 

這是有一些方法來使SQL Server查詢的字段在SELECT語句然後自動生成CREATE TABLE腳本?

感謝
卡爾

回答

2
SELECT 
    someInt, 
    someVarchar, 
    someDate 
INTO dbo.OutputTable 
FROM someTable 

...沒有明確生成創建腳本(至少不是一個你可以看到),但沒有工作!

+0

你,他可以使用'SELECT ... INTO ..',但是除非他創建了一些清理這些「僞溫度」表的軟件方法,否則數據庫會變得相當大(我只是假設任何東西「存儲一個長而複雜的查詢的結果需要幾乎一小時的時間才能運行」也使用了很多空間,如果我錯了,請糾正我),而且不僅可以用盡空間,而且不斷調整DB大小也會嚴重傷害性能。 – 2010-11-10 07:42:36

+0

對於這個特定的例子,我不認爲需要一個複雜的方式來清理表。這樣的查詢看起來像它將被調度 - 在這種情況下,首先刪除表(如果存在),然後運行查詢的兩步代理作業就沒有問題。我不認爲這裏的想法是這些是僞臨時表 - 如果它們要用於在Excel中進行透視,則不是。空間不足等是DBA的問題 - 我只能假定數據庫配置正確。 – 2010-11-10 07:45:45