我希望上面提到的所有澄清都回答了OP的原始问题。我只想添加一个用于将 SQL Server 添加为链接服务器的代码片段。 最基本的,我们可以通过执行 sp_addlinkedserver 只需一个参数 @server 来简单地将 SQL Server 添加为链接服务器,即 -- using IP address exec sp_addlinkedserver @server='192.168.1.11' -- PC domain name exec sp_addlinkedserver @server='DESKTOP-P5V8JTN' SQL Server 将自动用默认值填充 SRV_PROVIDERNAME 、 SRV_PRODUCT 、 SRV_DATASOURCE 等。通过这样做,我们必须在查询的 4 部分表地址中写入 IP 或 PC 域名(示例如下)。当链接服务器 没有默认端口或实例 时,这可能更烦人或可读性更低,地址将类似于 192.168.1.11,1430 或 192.168.1.11,1430\MSSQLSERVER2019 。 因此,为了保持 4 部分地址简短易读,我们可以通过指定其他参数来为服务器添加别名而不是完整地址,如下所示 - exec sp_addlinkedserver @server='ReadSrv1', @srvproduct='SQL Server', @provider='SQLNCLI', @datasrc='192.168.1.11,1430\MSSQLSERVER2019' 但是当您执行查询时,将显示以下错误 You cannot specify a provider or any properties for product 'SQL Server'. 如果我们将服务器产品属性值保留为空 '' 或任何其他值,则查询将成功执行。 下一步,通过执行以下查询登录到远程链接服务器 - EXEC sp_addlinkedsrvlogin @rmtsrvname = 'ReadSrv1', @useself = 'false', @locallogin = NULL, @rmtuser = 'sa', @rmtpassword = 'LinkedServerPasswordForSA' 最后,使用 4 部分地址的链接服务器,语法是 - [ServerName].[DatabaseName].[Schema].[ObjectName] 例子- SELECT TOP 100 t.* FROM ReadSrv1.AppDB.dbo.ExceptionLog t 要列出现有的链接服务器,请执行: exec sp_linkedservers - 要删除链接服务器,请执行: exec sp_dropserver @server = 'ReadSrv1', @droplogins='droplogins' (也删除登录名)或 exec sp_dropserver @server = 'ReadSrv1', @droplogins='NULL' (保持登录) 原文由 quasar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我希望上面提到的所有澄清都回答了OP的原始问题。我只想添加一个用于将 SQL Server 添加为链接服务器的代码片段。
最基本的,我们可以通过执行
sp_addlinkedserver
只需一个参数@server
来简单地将 SQL Server 添加为链接服务器,即SQL Server 将自动用默认值填充
SRV_PROVIDERNAME
、SRV_PRODUCT
、SRV_DATASOURCE
等。通过这样做,我们必须在查询的 4 部分表地址中写入 IP 或 PC 域名(示例如下)。当链接服务器 没有默认端口或实例 时,这可能更烦人或可读性更低,地址将类似于192.168.1.11,1430
或192.168.1.11,1430\MSSQLSERVER2019
。因此,为了保持 4 部分地址简短易读,我们可以通过指定其他参数来为服务器添加别名而不是完整地址,如下所示 -
但是当您执行查询时,将显示以下错误
You cannot specify a provider or any properties for product 'SQL Server'.
如果我们将服务器产品属性值保留为空''
或任何其他值,则查询将成功执行。下一步,通过执行以下查询登录到远程链接服务器 -
最后,使用 4 部分地址的链接服务器,语法是 -
[ServerName].[DatabaseName].[Schema].[ObjectName]
例子-
exec sp_linkedservers
- 要删除链接服务器,请执行:exec sp_dropserver @server = 'ReadSrv1', @droplogins='droplogins'
(也删除登录名)或exec sp_dropserver @server = 'ReadSrv1', @droplogins='NULL'
(保持登录)