SQL SERVER 跨服務器連接


SQL SERVER網絡連接,防火牆應開數據端口,默認1433。此時數據庫連接,如OPENDATASOURCE及鏈接服務器已可正常連通。
如果SSMS連接不上,可能還要開瀏覽服務1434端口。

一、OPENDATASOURCE\OPENROWSET
EXEC sp_configure 'show advanced options',1
RECONFIGURE

EXEC sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE

GO

--    OPENDATASOURCE
SELECT * FROM OPENDATASOURCE('SQLNCLI','Data Source=SERVER[,Port];User ID=sa;Password=PSW').DBNAME.DBO.TABLENAME

--    OPENROWSET
SELECT * FROM OPENROWSET('SQLNCLI','SERVER';'sa';'PSW','SELECT * FROM DBNAME.DBO.TABLENAME') a

GO

EXEC sp_configure 'Ad Hoc Distributed Queries',0
RECONFIGURE

EXEC sp_configure 'show advanced options',0
RECONFIGURE

GO

 

二、鏈接服務器
--使用SSMS添加老提示錯誤,使用代碼添加成功

--創建鏈接服務器

IF NOT EXISTS (select * from sys.servers where name = 'SERVER')
BEGIN 
    EXEC sp_addlinkedserver
    @server='SERVER',           --鏈接服務器別名
    @srvproduct='',
    @provider='SQLNCLI',        --此處即使填寫SQLOLEDB,數據庫也是存入SQLNCLI
    @datasrc='IP地址,端口'       --數據庫服務器IP

END 

GO

--登錄鏈接服務器
EXEC sp_addlinkedsrvlogin
@rmtsrvname='SERVER',            --鏈接服務器別名
@useself='false', 
@locallogin=NULL,
@rmtuser='sa',                  --數據庫用戶名
@rmtpassword='XXXXXX'           --數據庫密碼

GO

--數據操作



--刪除登錄,退出鏈接服務器
EXEC sp_droplinkedsrvlogin 'SERVER', null

GO 

--刪除鏈接服務器,同時第2個參數會刪除登錄

EXEC sp_dropserver 'SERVER', 'droplogins'

Go

 

https://www.cnblogs.com/ling-cun/p/9412797.html

https://www.cnblogs.com/tmftmb/p/11607699.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM