2015-07-23 3 views
3

Я недавно установил SQL Server 2014 Express и вам необходимо создать связанный сервер. Я пробовал это в SQL Server Management Studio (с object explorer - server objects - linked servers - add linked server).Связанный сервер SQL Server 2014 с SQL Server Версии 8

При подключении к серверу непосредственно через тип сервера «SQL-сервер» или указав атрибуты подключения в «Другие источники данных», затем поставщик Microsoft OLE DB для SQL Server и заполнив дополнительные данные, я получаю следующую ошибку.

Связанный сервер был создан, но не прошел проверку соединения. SQL Серверный клиент 11.0 не поддерживает подключения к SQL Server 2000 или более ранние версии.

Мне нужно создать объединенный запрос между двумя базами данных на разных серверах, каков наилучший способ достижения этого? К базе данных, к которой я должен подключиться, относится версия 8 (SQL Server 2000), очень старая. Я прочитал, что его можно было бы достичь с помощью транзакционного SQL, но не уверен, какие шаги предпринять.

+1

Как ошибка ** ясно говорит **: SQL Server 2000 (v8) является ** больше не поддерживается ** - ** Вы не можете ** восстановить резервную копию с SQL Server 2000 , и вы не можете создать связанный сервер с экземпляром SQL Server 2000. –

+0

Ошибка исходит от клиента, а не от сервера. Установите на компьютере более старый клиент SQL Server и используйте его для подключения. Одновременно можно установить несколько клиентских версий SQL Server. Я ожидаю, что 2008 или 2008 R2 будет поддерживать 2000. –

+0

Или восстановите базу данных до более новой версии, которая все еще поддерживает 2000, затем создайте резервную копию и восстановите ее до 2014. –

ответ

2

Возможно создание связанного сервера, но это невозможно сделать через графический интерфейс пользователя. В качестве обходного пути вы можете создать DSN для использования в транзакции SQL для соединения серверов.

Полные инструкции посетить http://sqlwithmanoj.com/2012/12/10/sql-server-2012-does-not-support-linked-server-to-sql-server-2000-workaround/

=> Временное решение/FIX:

Теперь, как обходной путь, чтобы сделать эту Linked работу сервера мы имеем возможность использовать источник данных ODBC, который будет подключаться к нашей удаленный сервер. Есть 2 подхода: 1. Либо мы создать ODBC источника данных (DSN) и использовать его в нашем Linked Server 2. Или используйте (DSN) строку подключения источника данных непосредственно в поставщике Linker сервера

-> Использование appraoch # 1:

Создание источника данных ODBC: - Откройте панель управления, перейдите в Администрирование, а затем «Источники данных (ODBC)». - В окне «Администратор источника данных ODBC» перейдите на вкладку «Системный DSN». - Здесь нажмите «Добавить», чтобы создать новый DSN. - Выберите «SQL Server» и нажмите «Готово». - В новом окне укажите имя источника DSN (например: NorthWind2000DSN), мы будем использовать это имя при создании нашего Linked Server. Укажите имя сервера, которое находится на SQL Server 2000, здесь «NorthWind». Нажмите "Далее. - Выберите тип аутентификации, либо авторизацию Windows, либо SQL Server. Нажмите "Далее. - Измените базу данных по умолчанию, не обязательно. Нажмите "Далее. - Нажмите «Готово». Вы увидите новый DSN, созданный на вкладке System DSN.

Теперь создайте Связанный сервер и укажите это DSN в параметре @datasrc и укажите параметр @provider «MSDASQL». Вы можете использовать ниже запрос, чтобы создать тот же:

USE master 
GO 
-- Drop Existing LinkedServer [NorthWind2000]: 
EXEC sp_dropserver @server=N'NorthWind2000', @droplogins='droplogins' 
GO 

-- Re-create LinkedServer [NorthWind2000] by using the ODBC connection: 
EXEC sp_addlinkedserver @server = N'NorthWind2000', 
        @srvproduct=N'MSDASQL', 
        @provider=N'MSDASQL', 
        @datasrc = N'NorthWind2000DSN', 
        @location=N'System'; 

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'NorthWind2000', 
         @useself=N'True', 
         @locallogin=NULL, 
         @rmtuser=NULL, 
         @rmtpassword=NULL 
GO 

-> Использование appraoch # 2:

Мы также можем непосредственно поместить строку соединения DSN в Provider Строка @provstr парам. Пусть проверить его ниже:

USE master 
GO 
-- Drop Existing LinkedServer [NorthWind2000]: 
EXEC sp_dropserver @server=N'NorthWind2000', @droplogins='droplogins' 
GO 
-- Re-create LinkedServer [NorthWind2000] by using the ODBC connection: 
EXEC sp_addlinkedserver @server = N'NorthWind2000', 
        @srvproduct=N'', 
        @provider=N'MSDASQL', 
        @provstr=N'DRIVER={SQLServer};SERVER=NorthWind;Trusted_Connection=yes;' 

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'NorthWind2000', 
         @useself=N'True', 
         @locallogin=NULL, 
         @rmtuser=NULL, 
         @rmtpassword=NULL 
GO 
Смежные вопросы