2013-05-20 137 views
0

我在SSMS中運行了sp,它從50多個數據庫中收集具有完全相同結構的信息。我正在拉取諸如CustomerName,NumberOfUsers和VersionofCode的結果。當我執行這個過程時,我得到了50多個不同的結果集,全都選擇了相同的列。我不想將這些50次以上的輸出結果放在一張excel表格中,而是想看看是否可以將所有結果導出到1個excel文件中。將多個查詢結果導出到單個Excel文件

這可能嗎?我不得不認爲有一種方法可以做到這一點,因爲我的列名匹配我查詢的每個數據庫。

任何幫助表示讚賞!

回答

1

可能有很多方法可以解決這個問題。我將通過嘗試將存儲過程調用中的多個結果集合併到單個結果集中,然後執行您希望執行的任何輸出導出(至Excel)來解決該問題。

最簡單的方法是使用臨時表來累積每個存儲的proc調用的結果。您可以使用「INSERT #temptable EXEC mystoredproc @ param1」語法來存儲存儲過程的結果。

這裏有一個小例子,我颳起:

-- *** Create a sample stored proc that returns one result set *** 
CREATE PROC spGetCompanyEmployees @pCompanyID AS INT 
AS 
BEGIN 
    SELECT Company.CompanyName 
     , Department.DepartmentName 
     , Employee.EmployeeName 
    FROM Company 
     LEFT JOIN Department ON Department.CompanyID = Company.CompanyID 
     LEFT JOIN Employee ON Employee.DepartmentID = Department.DepartmentID 
    WHERE Company.CompanyID = @pCompanyID 
END 
GO 


-- *** Demonstrate how to call that stored proc multiple times, 
-- *** accumulating the results in a temp table and selecting 
-- *** the combined results at the end. 

CREATE TABLE #ttbl 
(
    CompanyName NVARCHAR(60) 
    , DepartmentName NVARCHAR(60) 
    , EmployeeName NVARCHAR(60) 
) 

INSERT #ttbl 
    EXEC spGetCompanyEmployees 1 

INSERT #ttbl 
    EXEC spGetCompanyEmployees 2 

SELECT * FROM #ttbl 

從最終選擇生成的輸出將被組合,單個結果從兩個存儲過程調用集。

我希望這會有所幫助。

相關問題