Не удается подключиться к SQL Azure с помощью связанного сервера - PullRequest
6 голосов
/ 25 августа 2011

Я следил за этой статьей здесь:

http://blogs.msdn.com/b/sqlcat/archive/2011/03/08/linked-servers-to-sql-azure.aspx

о том, как настроить связанный сервер с SQL Server 2008 R2 на экземпляр SQL Azure. Я использую SQL Native Client 10.0 в качестве драйвера ODBC и, судя по базам данных по умолчанию, показано, что соединение действительно; однако, когда я пытаюсь установить связанный сервер, как предлагает вышеупомянутая статья; Я получаю следующую ошибку:

Поставщик OLE DB «MSDASQL» для связанного сервера «Azure_Test» вернул сообщение «[Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию».

Теперь я видел несколько постов на форуме (к сожалению, ничего убедительного), предполагающих, что это может быть 64-битная проблема. Кто-нибудь успешно настроил связанный сервер с SQL Azure из локального экземпляра?

РЕДАКТИРОВАТЬ: Давидс ответ был действительно правильным; Я просто подумала, что поделюсь этой удивительностью, которую, как я обнаружил, теперь можно делать со связанным сервером:

DELETE OPENQUERY (AzureTest, 
'SELECT * FROM [AzureDB].static.MyTable');

INSERT OPENQUERY (AzureTest, 
'SELECT * FROM [AzureDB].static.MyTable')
SELECT *
FROM static.MyTable

SELECT * FROM OPENQUERY(AzureTest, 'SELECT * FROM [AzureDB].static.MyTable')

1 Ответ

4 голосов
/ 25 августа 2011

Я сделал это, выполнив шаги, перечисленные в документе, на который вы ссылались.

Вот два оператора SQL, которые мне нужны, чтобы он работал для меня:

EXEC master.dbo.sp_addlinkedserver @server = N'Azure_ODBC1',@srvproduct=N'Any', @provider=N'MSDASQL', @datasrc=N'MY Azure'
GO

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Azure_ODBC1',
@useself=N'False',@locallogin=NULL,@rmtuser=N'piqBackup@azureServer',@rmtpassword='########'
GO

Я установил свое соединение ODBC как системный DSN (я изначально настроил его как пользовательский DSN и у меня были некоторые проблемы).Я просто использовал свое имя сервера (без 'tcp:' спереди) - azureServer.database.windows.net.Как только я настроил DSN и выполнил три утверждения выше, все заработало нормально.Я мог бы выполнить это заявление без проблем:

SELECT * FROM Azure_ODBC1.piqBackupData.dbo.BackupData

Я не уверен, помогает ли это или нет - но я надеюсь, что это помогает.Удачи!

...