如何使用OPENQUERY訪問另一個SQL Server

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   os   使用   sp   

原文:如何使用OPENQUERY訪問另一個SQL Server

在項目中,經常會遇到一個資料庫訪問另一個資料庫,【CNVFERPDB】為伺服器名,【CE3】為庫名

1 SELECT Dtl.* 2 FROM CNVFERPDB. CE3.ce3.ZTLE0125 Dtl 3 INNER JOIN CNVFERPDB.CE3.ce3.ZTLE0124 Mst 4 ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT 5 WHERE Mst.MANDT = ‘100‘ and Dtl.BRANDCODE=‘MD‘

上面的方式是通過伺服器名和庫名直接存取,這樣有多次串連另一個伺服器,執行速度會很慢

可以換做下面的形式,執行速度將得到提升:

 1 SELECT *   2 FROM OPENQUERY (CNVFERPDB   3     ,  4     ‘  5     SELECT Dtl.*   6     FROM    CE3.ce3.ZTLE0125 Dtl   7     INNER JOIN CE3.ce3.ZTLE0124 Mst   8     ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO  AND Dtl.MANDT = Mst.MANDT   9     WHERE Mst.MANDT = ‘‘100‘‘ and Dtl.BRANDCODE=‘‘MD‘‘10     ‘  11 ) 

OPENQUERY ( linked_server ,‘query‘ )
使用注意事項:
  linked_server 
    表示連結的伺服器名稱的標識符。
  ‘query
    在連結的伺服器中執行的查詢字串。 該字串的最大長度為 8 KB。


補充
 1 declare @Day VARCHAR(10)=CONVERT(CHAR(8),DATEADD(DAY,-1,GETDATE()),112) 2  3 --set @Day=‘20140605‘ 4  5 IF EXISTS(select * from AppLog where Dates=@Day) 6 return 7  8 declare @sql VARCHAR(2000)=‘select *  9 INTO #temp10 from openquery11 ([CNSASPLOGDB01],12 ‘‘13 select 14 A.ProgramId15 ,‘‘‘‘‘+@Day+‘‘‘‘‘ AS Dates16 ,COUNT(Duration) as Count17 ,SUM(CAST(Duration AS DECIMAL(12,3)))/1000 AS SumTime18 ,AVG(CAST(Duration AS DECIMAL(12,3)))/1000 as AvgTime19 ,MAX(CAST(Duration AS DECIMAL(12,3)))/1000 as MaxTime20 from 21 (22 select * from LogCSLK01.dbo.AppLog_‘+@Day+‘ with(nolock)23 union24 select * from LogCSLK02.dbo.AppLog_‘+@Day+‘ with(nolock)25 union26 select * from LogCSLK03.dbo.AppLog_‘+@Day+‘ with(nolock)27 ) A28 group by A.ProgramId29 ‘‘30 )31 32 insert into AppLog33 select * 34 from #temp35 36 drop table  #temp37 ‘38 --print @sql39 40 exec(@sql)

 

如何使用OPENQUERY訪問另一個SQL Server

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.