方法1:
USE MASTER
GO
EXEC sp_serveroption '数据库实例地址', 'data access', 'on'
GO
SELECT *
FROM OPENQUERY([数据库实例地址], 'exec [数据库].dbo.[PROCEDURE]')
USE MASTER
GO
EXEC sp_serveroption '数据库实例地址', 'data access', 'off'
GO
方法2:
IF EXISTS (SELECT srv.name FROM sys.servers srv
WHERE srv.server_id != 0
AND srv.name = N'Report_Add')
EXEC master.dbo.sp_dropserver @server=N'Report_Add', @droplogins='droplogins'
EXEC sp_addlinkedserver
@server='Report_Add',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc=@@Servername
exec sp_setnetname @@Servername, 'Report_Add'
--EXEC sp_addlinkedsrvlogin 'Report_Add', 'true', 'sa', 'sa', '....'
EXEC sp_addlinkedsrvlogin 'Report_Add', 'true'
SELECT *
FROM OPENQUERY('Report_Add', 'exec [数据库].dbo.[PROCEDURE]')
本文介绍两种在 SQL Server 中调用远程服务器上的存储过程的方法。首先使用 EXEC sp_serveroption 设置远程服务器的数据访问权限,然后通过 OPENQUERY 执行远程过程。第二种方法涉及创建链接服务器,并设置登录凭据,最后同样利用 OPENQUERY 调用远程过程。
27

被折叠的 条评论
为什么被折叠?



