Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将多个查询结果导出到单个Excel文件_Sql_Excel_Ssms_Export To Excel - Fatal编程技术网

Sql 将多个查询结果导出到单个Excel文件

Sql 将多个查询结果导出到单个Excel文件,sql,excel,ssms,export-to-excel,Sql,Excel,Ssms,Export To Excel,我在SSMS中运行了一个sp,它从50多个结构完全相同的数据库中收集信息。我正在提取CustomerName、NumberOfUsers和VersionofCode等结果。当我执行这个过程时,我得到50多个不同的结果集,所有结果集都选择了相同的列。我想看看是否可以将所有结果导出到一个excel文件中,而不是导出这50多次并将其放在一个excel表格中 这可能吗?我不得不想有一种方法可以做到这一点,因为我查询的每个数据库的列名都是匹配的 感谢您的帮助 解决这个问题的方法可能有很多。我将通过尝试将存

我在SSMS中运行了一个sp,它从50多个结构完全相同的数据库中收集信息。我正在提取CustomerName、NumberOfUsers和VersionofCode等结果。当我执行这个过程时,我得到50多个不同的结果集,所有结果集都选择了相同的列。我想看看是否可以将所有结果导出到一个excel文件中,而不是导出这50多次并将其放在一个excel表格中

这可能吗?我不得不想有一种方法可以做到这一点,因为我查询的每个数据库的列名都是匹配的


感谢您的帮助

解决这个问题的方法可能有很多。我将通过尝试将存储过程调用中的许多结果集合并到一个结果集中,然后执行您希望执行的任何输出导出到excel的操作来解决这个问题

最简单的方法是使用临时表来累积每个存储过程调用的结果。您可以使用INSERT TENTABLE 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
最终选择的结果输出将是来自两个存储过程调用的组合、单个结果集


我希望这能有所帮助。

我将使用临时表的建议与使用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