SQL Server:JOIN多个数据库之间错误

时间:2017-09-21 18:43:10

标签: sql sql-server database join

我正在尝试加入两个不同的数据库,并且收到一个我以前没见过的错误。 SQL将数据库PDX_SAP_USER加入asagdwpdx_prod

奇怪的是,在下面的代码中,如果我排除表dbo.VW.PO_HEADER H并且只包含dbo.VW_PO_ITEM P,则查询工作正常,但我需要的JOIN在H和G表之间。当我包含PO标题表时,问题出现了。

错误消息是:

  

Msg 7202,Level 11,State 2,Line 2
  无法找到服务器' PDX_SAP_USER'在sys.servers中。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver以将服务器添加到sys.servers。

SQL代码是:

SELECT 
    G.order_no, 
    G.order_status, 
    G.cst_order_no,
    H.PO_NUMBER,
    P.PO_ITEM_NUMBER, 
    P.DEL_INDICATOR
FROM   
    (SELECT 
         order_no, 
         order_status, 
         cst_order_no
     FROM 
         asagdwpdx_prod.dbo.SimoxOrder1

     UNION ALL

     SELECT 
         order_no, 
         order_status, 
         cst_order_no
     FROM 
         asagdwpdx_prod.dbo.SimoxOrder2

     UNION ALL 

     SELECT 
         order_no, 
         order_status, 
         cst_order_no
     FROM 
         asagdwpdx_prod.dbo.SimoxOrder3) G 
JOIN 
    PDX_SAP_USER.dbo.VW.PO_HEADER H ON G.order_no = H.AHAG_NUMBER
JOIN 
    PDX_SAP_USER.dbo.VW_PO_ITEM P ON H.PO_NUMBER = P.PO_NUMBER 
WHERE 
    G.order_status = '90'

感谢。

1 个答案:

答案 0 :(得分:2)

我认为PDX_SAP_USER.dbo.VW.PO_HEADER应该是PDX_SAP_USER.dbo.VW_PO_HEADER。额外的时间段使SQL Server认为您正在使用4部分命名来尝试访问链接服务器。