Tentando criar um servidor vinculado do servidor A (2005) para B (2008 R2). Tudo funcionou quando criado. O login no servidor B foi mapeado para dois bancos de dados: DataBase1 e Database2. Database1 era o padrão.
Database2 foi colocado off-line. Ao abrir o Mapeamento de usuários, aparece a mensagem "Um ou mais bancos de dados estão inacessíveis e não serão exibidos na lista". Presumo que o Database2 seja o culpado. Coloquei o Database2 online e desmarquei.
Ao testar a conexão no Servidor Vinculado, falha porque não consegue acessar o Banco de Dados2. Novamente, Database1 é o padrão.
Eu reconstruí o login usando exatamente o mesmo script sem mencionar o Database2, ainda recebo o erro.
Como preciso de um nome de servidor vinculado diferente que não corresponda ao nome real do SQL Server, digamos que eu queira vincular ao servidor "A", mas chamar o link de "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=*******;'
Posso entrar no SSMS e criar um servidor vinculado por meio da GUI. Escolhendo o SQL Server, que não me permite usar um nome para o servidor vinculado, exceto o mesmo nome do servidor e funciona. Isso não usa o provedor OLE DB para ODBC.
EXEC master.dbo.sp_addlinkedserver @server = N'B', @srvproduct=N'SQL Server'
Posso criar um script para indicar o nome do link como X e o servidor ou datasrc?