Вопрос

У меня проблема с моим скриптом SQL:

SELECT  
  SP.[MobileNumber],  
  SP.[LastName],  
  SP.[FirstName]  
FROM SampleTable1 SP  
INNER JOIN OPENROWSET  
(  
  'Microsoft.Jet.OLEDB.4.0',  
  'Excel 8.0;Database=C:\devpc11\sample.xls;',  
  'SELECT   
     MobileNumber,   
     LastName,  
     FirstName  
   FROM [SampleData$]') T  
ON SP.[MobileNumber] = T.[MobileNumber]  
GO

Когда я пытаюсь выполнить это, он генерирует эту ошибку:

MSG 7357, уровень 16, состояние 2, строка 1 не может обработать объект «Выберите MobilEnumber, Lastname, FirstName из [Smapledata $]». Поставщик OLE DB "microsoft.jet.oledb.4.0" для связанного сервера "(null)" указывает, что либо объект не имеет столбцов, либо текущий пользователь не имеет разрешений на этот объект.

Есть ли решение для этого? Я действительно не могу найти ничего за последние 3 часа. По сути, я просто хочу манипулировать данными из файла Excel, а затем сохранить в базе данных SQL Server 2005, но сейчас я хочу получить данные из файла Excel в SQL Server .. Спасибо за помощь ..

Это было полезно?

Решение

Я получил это, чтобы работать с электронную таблицу на местном уровне. забывать OPENROWSET

  1. Создайте названный диапазон в вашей таблице Excel. Tio сделайте это, выделите столбцы (включая заголовки), которые вы хотите, щелкните правой кнопкой мыши и выберите «Назовите диапазон». Дайте этому имя, это будет название вашей таблицы.

    http://www.homeandlearn.co.uk/me/mes9p2.html

  2. Сохраните и закройте свою таблицу. SQL Server не сможет получить к нему доступ, если вы его откроете.

  3. Добавьте связанный сервер. Следуйте инструкциям в Раздел e Далее, в котором сообщает, как добавить связанный сервер для электронных таблиц Excel:

    http://msdn.microsoft.com/en-us/library/ms190479.aspx

  4. Вы должны быть в состоянии запросить DS довольно счастливо, снова следуя инструкциям.

Вот код, который работает для меня:

EXEC sp_addlinkedserver 'ExcelSource4',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   'c:\sqlss.xls',
   NULL,
   'Excel 5.0';
GO

SELECT *
   FROM ExcelSource4...MyTable2;

И наконец. Начните принимать некоторые ответы и голосовать за любые полезные. Это жизненная сила Stackoverflow.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top