尝试创建从服务器 A (2005) 到 B (2008 R2) 的链接服务器。创建时一切正常。服务器 B 上的登录映射到两个数据库:DataBase1 和 Database2。Database1 是默认值。
数据库 2 已脱机。打开用户映射时,有一条消息,“一个或多个数据库无法访问,不会显示在列表中。” 我认为 Database2 是罪魁祸首。我将 Database2 联机并取消选中它。
在链接服务器上测试连接时,它失败了,因为它无法访问 Database2。同样,Database1 是默认值。
我使用完全相同的脚本重建了登录名,但没有提及 Database2,仍然出现错误。
因为我需要一个与实际 SQL Server 名称不匹配的不同链接服务器名称,假设我想链接到服务器“A”但调用链接“X”
EXEC master.dbo.sp_addlinkedserver @server = N'X'
, @srvproduct=N'Microsoft OLE DB Provider for ODBC'
, @provider=N'MSDASQL', @datasrc=N'X'
, @provstr=N'DRIVER={SQL Server};SERVER=B;UID=test;PWD=*******;'
我可以进入 SSMS 并通过 GUI 创建链接服务器。选择 SQL Server,这将不允许我使用链接服务器的名称,除非与服务器同名并且它可以工作。这不使用 OLE DB Provider for ODBC。
EXEC master.dbo.sp_addlinkedserver @server = N'B', @srvproduct=N'SQL Server'
我可以编写这个脚本,以便我可以将链接名称指示为 X 和服务器或数据源吗?