最好 way/practices 将存储过程中的多个结果集生成到 Excel 中的不同选项卡
Best way/practices to generate multiple result sets in stored procedure to different tabs in Excel
我希望通过 Excel 在 SQL 服务器上调用存储过程。我使用 Excel 的原因是因为用户输入了一些值,这些值作为参数传递给存储过程并执行到 return 新数据选项卡中的结果数据集。但是,存储过程有大约 6-7 select 条语句负责生成 6-7 个结果集。除了为每个结果集创建单独的存储过程(这是不可行的,因为它是及时的并且结果集相互构建),处理这个问题或解决方案的最佳方法是什么?它是我需要构建到存储过程逻辑中的东西还是我可以在 Excel 中配置的东西?
我的存储过程看起来像这样给你一个想法
CREATE PROCEDURE Test
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 10 PersonType,NameStyle,Title
FROM [AdventureWorks2016CTP3].[Person].[Person]
SELECT TOP 10 PersonType,Firstname,Lastname
FROM [AdventureWorks2016CTP3].[Person].[Person_json]
SELECT ****
.
.
.
SELECT ****
END
GO
在存储过程中,为所有 select 语句提供相同的列名,并在它们之间使用 UNION
,然后为每个 select 语句添加一个列来标识哪个 table 数据来自,最好使用 table 名称。
然后将存储过程调用到主选项卡一次,然后将该数据引用到其他选项卡并过滤它们。
我希望通过 Excel 在 SQL 服务器上调用存储过程。我使用 Excel 的原因是因为用户输入了一些值,这些值作为参数传递给存储过程并执行到 return 新数据选项卡中的结果数据集。但是,存储过程有大约 6-7 select 条语句负责生成 6-7 个结果集。除了为每个结果集创建单独的存储过程(这是不可行的,因为它是及时的并且结果集相互构建),处理这个问题或解决方案的最佳方法是什么?它是我需要构建到存储过程逻辑中的东西还是我可以在 Excel 中配置的东西?
我的存储过程看起来像这样给你一个想法
CREATE PROCEDURE Test
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 10 PersonType,NameStyle,Title
FROM [AdventureWorks2016CTP3].[Person].[Person]
SELECT TOP 10 PersonType,Firstname,Lastname
FROM [AdventureWorks2016CTP3].[Person].[Person_json]
SELECT ****
.
.
.
SELECT ****
END
GO
在存储过程中,为所有 select 语句提供相同的列名,并在它们之间使用 UNION
,然后为每个 select 语句添加一个列来标识哪个 table 数据来自,最好使用 table 名称。
然后将存储过程调用到主选项卡一次,然后将该数据引用到其他选项卡并过滤它们。