Я пытаюсь создать связанный сервер в Sql server 2008 R2, только что попытался загрузить 64-битную версию Office 2010 Access AD Engine от Microsoft.
К сожалению, я попытался добавить связанный сервер, ДО того, как сделать эту установку, и это не удалось:
EXEC sp_addlinkedserver 'LinkedServer1', 'Excel', 'Microsoft.Jet.OLEDB.4.0', 'D:\Folder\Excel1.xls', '', 'Excel 8.0', ''
(дайте мне знать, если этот способ добавления неправильный, если у вас есть другой способ сделать это!)
После завершения загрузки выдает сообщение о том, что этот сервер уже существует:
"Для сервера 'LinkedServer1' все еще существуют удаленные или связанные логины."
Попытка добавить 'LinkedServer2' таким же образом ПОСЛЕ загрузки (в качестве параметра использовался Excel5.0 вместо Excel8.0). Оно работает!
Тем не менее, этот старый связанный сервер, похоже, все еще существует, хотя я пытался удалить его:
Чтобы быть уверенным, что это действительно там, я написал это:
select * from sys.servers where is_linked =1
и свойства в деталях:
server_id: 1
name= LinkedServer1
product= Excel
provider = Microsoft.Jet.OLEDB.4.0
data_source= D:\Folder\Excel1.xls
location:NULL
provider_string: Excel 8.0
is_linked=1
is_data_access_enabled=1
modify_date= 2010-08-15 19:56:02.307
Дайте мне знать, если вы заметили, что я делаю что-то не так! Я попытался сбросить LinkedServer2, все работает! Тем не менее, даже когда я пытаюсь удалить тот же связанный сервер1, как это:
Exec sp_dropserver @server = 'LinkedServer1'
терпит неудачу на мне, то же самое сообщение!
"Для сервера 'LinkedServer1' все еще существуют удаленные или связанные логины."
Попытка добавления связанного сервера с использованием строки поставщика в качестве «Excel 5.0», и она была успешно добавлена и удалена.
Еще одно обновление:
Это снова не удается:
EXEC ('INSERT INTO Table1
ВЫБЕРИТЕ col1, excel2col, excel3col, Заменить (Заменить (excel4col, '' '' ',' '' ')
FROM OPENROWSET ('' Microsoft.Jet.OLEDB.4.0 '', '' Excel 5.0; HDR = Да; База данных = '+' D: \ Folder \ Excel1.xls '', [Sheet2 $]) ')
Ошибка:
Поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» не может использоваться для распределенных запросов, поскольку поставщик настроен для работы в однопоточном режиме квартиры.
Я изменил конфигурацию на:
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;