【问题标题】:Query from multiple servers using power query使用电源查询从多个服务器查询
【发布时间】:2021-09-15 10:38:39
【问题描述】:

我在两个 SQL 服务器上有两个存储过程,每个存储过程在每个服务器上查询相同的表等。有没有办法同时查询两者?将数据合并到一个结果集中。 向他们传递参数时?

示例: 公司 a 在服务器上的存储过程名称 SP_A

DECLARE
@From_date as varchar(10) = '20210101'
@To_date as varchar(10) = '20210601'

SELECT Product, price, orderNum
FROM a where order date = between @From_date and @To_date

服务器 b 上的公司 b 存储过程名称 SP_B

DECLARE
@From_date as varchar(10) = '20210101'
@To_date as varchar(10) = '20210601'

SELECT Product, price, orderNum
FROM b where order date = between @From_date and @To_date

Excel:

exec a.SP_A @From_date = C1, @To_date = C2, exec SP_B @From_date = C1, @To_date = C2

希望这清楚地解释了我在这里尝试做的任何见解。

【问题讨论】:

    标签: sql excel


    【解决方案1】:

    就我而言,实现这一点非常简单,因为我查询的服务器是链接在一起的。因此,仅针对链接服务器遵循此解决方案。

    创建存储过程: 去 /****** 对象:StoredProcedure [scheme].[master_meat_PO] 脚本日期:15/09/2021 15:13:10 ******/ 设置 ANSI_NULLS ON 去 设置 QUOTED_IDENTIFIER ON 去吧

    创建过程 [scheme].[master_meat_PO]

    @from as datetime = '20200101',
    @to as datetime = '20210814'
    
    as
    
    begin
    
    SELECT Product, price, orderNum
    FROM SQL_a.db_a.Scheme_a.table_a 
    where order date = between @From_date and @To_date
    
    UNION
    
    SELECT Product, price, orderNum
    FROM SQL_b.db_b.Scheme_b.table_b 
    where order date = between @From_date and @To_date
    

    然后像往常一样在 Excel 中调用该过程:

    exec a.SP_A @From_date = C1, @To_date = C2, exec SP_B @From_date = C1, @To_date = C2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2013-02-03
      • 2022-06-10
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多