Подтвердить что ты не робот

Экспорт данных SQL-запроса в Excel

У меня есть запрос, который возвращает очень большой набор данных. Я не могу скопировать и вставить его в Excel, который я обычно делаю. Я занимаюсь некоторыми исследованиями, как экспортировать непосредственно на лист Excel. Я запускаю SQL SERVER 2008 на сервере под управлением Microsoft Server 2003. Я пытаюсь использовать поставщика данных Microsoft.Jet.OLEDB.4.0 и Excel 2007. Я собрал небольшой фрагмент кода, который выглядит так, Мы видели в примерах.

INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\Working\Book1.xlsx;Extended Properties=EXCEL 12.0;HDR=YES')
SELECT productid, price FROM dbo.product

Однако это не работает, появляется сообщение об ошибке

"Неверный синтаксис рядом с ключевым словом" SELECT ".

Есть ли у кого-нибудь идеи о том, как это сделать или, возможно, лучший подход?

4b9b3361

Ответ 1

Я не знаю, это то, что вы ищете, но вы можете экспортировать результаты в Excel следующим образом:

В области результатов щелкните ячейку вверху слева, чтобы выделить все записи, а затем щелкните правой кнопкой мыши верхнюю левую ячейку и нажмите "Сохранить результаты как". Одним из вариантов экспорта является CSV.

Вы тоже можете сделать это:

INSERT INTO OPENROWSET 
   ('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product')

Наконец, вы можете изучить использование SSIS (замененный DTS) для экспорта данных. Вот ссылка на учебник:

http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm

Ответ 2

Если вам просто нужно экспортировать в excel, вы можете использовать мастер данных экспорта. Щелкните правой кнопкой мыши базу данных, Задачи- > Экспорт данных.

Ответ 3

У меня была аналогичная проблема, но с завихрением - перечисленные выше решения работали, когда набор результатов был из одного запроса, но в моей ситуации у меня было несколько отдельных запросов на выбор, для которых мне нужны результаты для экспорта в Excel. Ниже приведен пример, иллюстрирующий, хотя я мог бы сделать предложение name in...

select a,b from Table_A where name = 'x'
select a,b from Table_A where name = 'y'
select a,b from Table_A where name = 'z'

Мастер позволял мне экспортировать результат из одного запроса в excel, но не все результаты от разных запросов в этом случае.

Когда я исследовал, я обнаружил, что мы можем отключить результаты в сетке и включить результаты в текст. Итак, нажмите Ctrl + T, затем выполните все инструкции. Это должно показать результаты в виде текстового файла в окне вывода. Вы можете манипулировать текстом в формате с разделителями табуляции для импорта в Excel.

Вы также можете нажать Ctrl + Shift + F, чтобы экспортировать результаты в файл - он экспортируется как .rpt файл, который можно открыть с помощью текстового редактора и обработать для импорта excel.

Надеюсь, что это поможет другим, имеющим аналогичную проблему.