我想知道如何在SQL脚本中从另一个SQL Server实例的表中查询数据。
我正在编写运行在
经过搜索,似乎可以使用
我已经做了一些工作,但效果不尽如人意。例如,当再次执行时会弹出一些错误,比如服务器已经链接。但是我该如何执行此脚本以链接服务器,然后放弃它?
我正在编写运行在
127.0.0.1\SQLINSTANCE1
上的SQL脚本,但是在脚本内部需要从127.0.0.2\SQLINSTANCE2
选择数据,然后将结果数据作为计算的一部分返回。经过搜索,似乎可以使用
sp_addlinkedserver
和sp_addlinkedsrvlogin
存储过程来完成这个任务,但不幸的是没有完整可用的示例。我已经做了一些工作,但效果不尽如人意。例如,当再次执行时会弹出一些错误,比如服务器已经链接。但是我该如何执行此脚本以链接服务器,然后放弃它?
DECLARE @remoteserver VARCHAR = '127.0.0.2\SQLINSTANCE2';
EXEC master.sys.sp_addlinkedserver @server = @remoteserver
, @srvproduct = 'SQL Server';
EXEC master.sys.sp_addlinkedsrvlogin @rmtsrvname = @remoteserver
, @useself = 'false'
, @locallogin = NULL
, @rmtuser = 'sa'
, @rmtpassword = 'password';
另一方面,我该如何为这个丑陋的远程服务器名称创建别名?我更愿意使用一些优雅的名称,如RS,在select * from [RS].[db].[dbo].[table]
中。