2013-07-31 3 views
1

Я хочу экспортировать данные из запроса в файл excel. Я знаю, что таких вопросов здесь много, но в моей ситуации никто не приемлем.Экспорт данных из запроса SQL Server в excel

Например, как эту тему с помощью OPENROWSET: T-SQL: Export to new Excel file

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable 

Это только выполнить успешно, когда я создаю testing.xls себя, а также определить точно количество столбцов, которые будут экспортировать из моего запроса в этом первенствует файл. В противном случае возникает ошибка: имя столбца или количество заданных значений не соответствует определению таблицы.

Я также попробовать другое решение здесь: http://weblogs.sqlteam.com/mladenp/archive/2006/07/25/10771.aspx с помощью Exec master..xp_cmdshell

Это действительно работает, но я слышал, что xp_cmdshell является большой угрозой безопасности для SQL Server. Так что, возможно, я не должен его использовать.

Есть ли другой способ попробовать?

+0

Пробовали ли вы какие-либо решения? – OzrenTkalcecKrznaric

+0

Я хочу, чтобы решение TSQL выполняло его в моем магазине, поэтому это решение не соответствует моему запросу. – user2500561

+0

Проверьте, будут ли ответы в этом вопросе работать для вас: http://stackoverflow.com/questions/15896765/automate-using-sql-express-to-export-to-excel-not-csv/16027210#16027210 – Lan

ответ

1

Если вы ищете быстрое и грязное решение, вы можете использовать Management Studio самостоятельно.

Вот шаги:

  • написать запрос и запустить его
  • правой кнопкой мыши на панели результатов и выберите «Сохранить результаты как ...»
  • выберите папку/имя файла и убедитесь, CSV тип выбирается ниже
  • теперь откройте свой CSV-файл, используя Excel; если необходимо сохранить его в Excel в качестве собственного формата Excel

Это не поможет вам, если вам нужно программное решение, и в этом случае вам необходимо использовать Microsoft (Microsoft.Office.Interop.Excel) или сторонние решения ; вы можете даже build one using Office Open XML.

Если вам нужно решение TSQL, OPENROWSET, о котором вы упоминаете в вопросе, должно быть хорошо.

Вы можете использовать решение только для Excel и импортировать данные, используя панель данных в самом Excel (импорт из SQL-сервера).

Другая возможность, которую нельзя привязать к SQL Server или самому Excel, - Powershell. Тем не менее, я не в Powershell, поэтому, если вы предпочитаете этот метод, вам придется исследовать немного больше.

Кроме того, this является немного устаревшим, но интересным.

+0

Мне нужно решение TSQL, с OPENROWSET, мне нужно создать файл excel самостоятельно, определить столбцы для него, иначе я получил ошибку: Имя столбца или количество заданных значений не соответствует определению таблицы. – user2500561

0

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

Если это не поможет и другие варианты: - Делайте это вручную SSSM как Ozren предложил - Попробуйте создать пакет SSIS для этого

Здесь есть несколько других нитей, чтобы вы начали

http://www.connectionstrings.com/excel/

How do you transfer or export SQL Server 2005 data to Excel

Export SQL query data to Excel

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