2015-03-16 3 views
0

Я использую приведенный ниже код для экспорта данных в файл excel. Это отлично работает, когда файл excel пуст. Но когда я обновляю filed до null, запрос insert выполняется успешно, но excel показывает пустое.Экспорт данных в excel с сервера sql не работает

update openrowset('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 
'select Column1,Column2,Column3 FROM [Sheet1$]') 
set Column1=null,Column2=null,Column3=null 


insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 'SELECT * FROM [Sheet1$]') 
select Column1,Column2,Column3 from table_Name 

Прежде чем писать, я хочу, чтобы файл был пустым.

Просьба помочь.

ответ

0

Из того, что я прочитал в Интернете, OPENROWSET только для чтения, так что вы должны использовать OPENDATESOURCE вместо. Попробуйте что-то вроде этого.

UPDATE OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$] 
    SET Column1=null,Column2=null,Column3=null 


INSERT INTO OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$] 
    SELECT Column1,Column2,Column3 from table_Name 
+0

Сво работает в первый раз, но во время обновления на второй раз он показывает OLE DB провайдер «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(нуль)» возвращается сообщение «Закладка недействительна.». Msg 7346, уровень 16, состояние 2, строка 1 Невозможно получить данные строки от поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(null)». – KousiK

+0

Вот посмотрите этот форум. Он должен иметь все ответы, которые вам нужны. http://stackoverflow.com/questions/13888082/ole-db-provider-microsoft-ace-oledb-12-0-for-linked-server-null-returned-m – Stephan

 Смежные вопросы

  • Нет связанных вопросов^_^