可能有很多方法可以解决这个问题。我将通过尝试将存储过程调用中的许多结果集合并到一个结果集中来解决该问题,然后执行您希望执行的任何输出导出(到 excel)。
最简单的方法是使用临时表来累积每个存储过程调用的结果。您可以使用“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 的结果输出将是来自两个存储过程调用的组合的单个结果集。
我希望这有帮助。