Temos usado essa sintaxe ao usar o OpenRowset para coletar dados de outras instâncias do SQL Server
SELECT a.*
FROM OPENROWSET('SQLNCLI11',
'Server=STARDBS1004\T12;UID=user;PWD=pwd;',
'select * from [MyTable]') as a
O Native Client está obsoleto e o conselho da MS é usar o driver Microsoft® OLE DB 18 mais recente para SQL Server®
Estou lutando para encontrar a sintaxe correta para minha OPENROWSET
consulta
É assim que eu acho que deveria ser agora:
SELECT a.*
FROM OPENROWSET('MSOLEDBSQL',
'Data Source=STARDBS1004\T12;Initial Catalog=Staging_DWH;User ID=user;Password=pwd',
'select * from [MyTable]') AS a
Mas recebo esses erros:
O provedor OLE DB "MSOLEDBSQL" para o servidor vinculado "(null)" retornou a mensagem "Especificação de autorização inválida".
O provedor OLE DB "MSOLEDBSQL" para o servidor vinculado "(null)" retornou a mensagem "Atributo de cadeia de conexão inválido".
Msg 7399, Level 16, State 1, Line 2
O provedor OLE DB "MSOLEDBSQL" para o servidor vinculado "(null)" relatou um erro. Falha na autenticação.
Msg 7303, Level 16, State 1, Line 2
Não é possível inicializar o objeto de fonte de dados do provedor OLE DB "MSOLEDBSQL" para o servidor vinculado "(null)".
Obviamente, a sintaxe está errada, então alguém pode ajudar a encontrar a sintaxe correta?
As conexões OLEDB usando o driver MSOLEDBSQL devem usar este formato:
ConnectionStrings.com é inestimável para obter detalhes válidos da cadeia de conexão.