我想知道如何在 SQL 脚本中从另一个 SQL Server 实例的表中查询数据。
我正在编写运行的 sql 脚本,127.0.0.1\SQLINSTANCE1
但在脚本内部将选择数据,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';
另一方面,如何为这个丑陋的远程服务器名称创建别名?我宁愿使用一些优雅的名字,比如 RSselect * from [RS].[db].[dbo].[table]