在SQL Server中,sys.servers是一个系统视图,它提供了关于SQL Server实例上配置的所有链接服务器的信息。链接服务器允许您执行跨数据库服务器的分布式查询和事务。通过查询sys.servers视图,您可以获取关于这些链接服务器的详细信息,如服务器名称、服务器类型、产品名称等。
SELECT name, product, data_source FROM sys.servers;
查看要访问的服务器是否添加到了视图中,如果没有添加可以使用系统默认的存储过程sp_addlinkedserver来添加
EXEC sp_addlinkedserver
@server='', -- 链接服务器的名称,自己随便起
@srvproduct='', -- 目标服务器的产品名称(可选)
@provider='SQLNCLI', -- 用于连接的提供程序名称(对于SQL Server,通常是SQLNCLI)
@datasrc='数据库地址'; -- 目标服务器的地址(可以是IP地址或域名)
执行之后就可以在sys.servers视图中查询到对应的数据,如果添加成功之后查询数据表报错登录失败,执行sp_addlinkedsrvlogin 设置登录名称和密码
EXEC sp_addlinkedsrvlogin
@rmtsrvname = '', -- 链接服务器的名称,添加时设置的名称
@useself = 'FALSE', -- 使用本地登录名和密码连接到链接服务器(FALSE表示不使用)
@locallogin = NULL, -- 本地登录名(如果为NULL,则适用于所有本地登录名)
@rmtuser = '', -- 目标服务器的登录名
@rmtpassword = ''; -- 目标服务器的密码
设置好之后就可以访问目标数据库了
SELECT * FROM 链接服务器名称.数据库名称.dbo.表名