![](/img/trans.png)
[英]How to export multiple sql query results into one Excel file in Postgresql
[英]Export Multiple Query Results to Single Excel File
我在SSMS中運行了一個sp,它從50多個具有完全相同結構的數據庫中收集信息。 我正在提取諸如CustomerName,NumberOfUsers和VersionofCode之類的結果。 執行該過程時,我得到50多個不同的結果集,所有結果集都選擇了相同的列。 我不想將這些結果導出50多次並將其放到一個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
該最終SELECT的結果輸出將是來自兩個存儲過程調用的組合的單個結果集。
我希望這有幫助。
我將使用臨時表的建議與此博客文章中的示例結合使用,該示例使用sys.sp_msforeachdb遍歷數據庫,結果如下:
Create TABLE #temp
(
DbName NVARCHAR(50),
TableName NVARCHAR(50)
)
INSERT #temp
EXEC
sys.sp_msforeachdb
'SELECT ''?'' DatabaseName, Name FROM [?].sys.Tables WHERE Name LIKE ''%sometablename%'''
Select * from #temp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.