SQL Server分散式查詢

來源:互聯網
上載者:User

declare @serverIP varchar(50)  --伺服器IP地址
declare @serverOtherName varchar(50) --被訪問的伺服器別名
declare @loginUser varchar(50)  --帳號
declare @loginPassword varchar(50) --密碼

set @serverIP   = '118.8.28.9'
set @serverOtherName  = 'newW'
set @loginUser   = 'testUser'
set @loginPassword  = '123'

--添加連結的伺服器
exec sp_addlinkedserver
 @server=@serverOtherName,
 @datasrc=@serverIP,
 @srvproduct='',
 @provider='SQLOLEDB'

--為連結的伺服器添加登陸
EXEC sp_addlinkedsrvlogin
     @serverOtherName,
     'false',
     NULL,
     @loginUser,
     @loginPassword
--執行查詢
select * from [newW].dataBaseName.dbo.table1

--刪除連結的伺服器
IF  EXISTS (SELECT srvname FROM master.dbo.sysservers srv WHERE srvid != 0 AND srvname = N'newW')
 EXEC master.dbo.sp_dropserver @server=N'newW', @droplogins='droplogins'

select * from openquery(newW,'select top 5 * from table1')

select top 5 * from opendatasource('SQLOLEDB','Data Source=118.8.28.9;User ID=testUser;Password=123').HfOA2007.dbo.table1

select * from openrowset('MSDASQL','DRIVER={SQL Server};SERVER=118.8.28.9;UID=testUser;PWD=123','select top 5 * from table1')

/*
openquery方法和openrowset方法是直接傳遞分散式查詢,速度會比直接使用連結的伺服器要快。openquery和openrowset的區別在於openquery使用連結服務其,而openrowset不是。
在使用OpenRowSet()執行update命令時,應當將該函數作為要修改的表。如下:
update openrowset('MSDASQL','DRIVER={SQL Server};SERVER=118.8.28.9;UID=testUser;PWD=123','select * from table1 where id=1') set fieldName1='Hello'
*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.