SQL SERVER 跨服务器连接

SQL SERVER网络连接,防火墙应开数据端口,默认1433。此时数据库连接,如OPENDATASOURCE及链接服务器已可正常连通。
如果SSMS连接不上,可能还要开浏览服务1434端口。

一、OPENDATASOURCEOPENROWSET
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

原文地址:https://www.cnblogs.com/hhlotus/p/12843644.html