powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоматический экспорт результатов запроса в Excel
13 сообщений из 13, страница 1 из 1
Автоматический экспорт результатов запроса в Excel
    #39439749
JMLabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста, советом как можно выгружать результат запроса select в файл excel. По сабжу написано много материала, но конкретного решения как это сделать нет. Везде описано как сделать разовый экспорт через GUI или иначе, но автоматического решения, чтобы сделать шедулер я не нашел. Вот, например, статья, которая вроде как описывает решение, но совершенно непонятно как это сделать, примеров нет: https://habrahabr.ru/company/oda/blog/263323/
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39439788
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JMLabsПомогите, пожалуйста, советом как можно выгружать результат запроса select в файл excel. По сабжу написано много материала, но конкретного решения как это сделать нет. Везде описано как сделать разовый экспорт через GUI или иначе, но автоматического решения, чтобы сделать шедулер я не нашел. Вот, например, статья, которая вроде как описывает решение, но совершенно непонятно как это сделать, примеров нет: https://habrahabr.ru/company/oda/blog/263323/


Гугл .
Первая ссылка говорит как сделать нормально, вторая - ваши примеры.
Я бы смотрел в сторону SSIS всетки.
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39439789
rnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSIS?
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39440035
JMLabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы, но ни один из примеров http://stackoverflow.com/questions/9086880/t-sql-export-to-new-excel-file я запустить не смог

пример 1
Код: sql
1.
2.
3.
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;', 
    'SELECT * FROM [SheetName$]') select * from SQLServerTable


выдает ошибку:
Код: plaintext
1.
2.
Msg 7308, Level 16, State 1, Line 2
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

хотя я сделал:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO


4-й пример
Код: sql
1.
2.
3.
4.
5.
EXEC sp_makewebtask 
    @outputfile = 'd:\testing.xls', 
    @query = 'Select * from Database_name..SQLServerTable', 
    @colheaders =1, 
    @FixedFont=0,@lastupdated=0,@resultstitle='Testing details'


не работает из-за отсутствия хранимки sp_makewebtask

5-й пример
Код: sql
1.
EXEC proc_generate_excel_with_columns 'your dbname', 'your table name','your file path'


выдает странное сообщение
Код: plaintext
1.
2.
User name not provided, either use -U to provide the user name or use -T for Trusted Connection
usage: bcp {dbtable | query} {in | out | queryout | format} datafile

Что касается SSIS, то мне не понятно как этот проект можно запускать в шедулере и как передавать в него входные данные
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39440084
rnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JMLabs,
вместо 'Microsoft.Jet.OLEDB.4.0' попробуй 'Microsoft.ACE.OLEDB.12.0' или 'Microsoft.ACE.OLEDB.16.0'
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574140
JMLabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подниму тему. Свою задачу практически решил на SSIS. Все работает отлично кроме одного - не могу настроить формат конечного xlsx. Все числа сохраняются как строки (у меня шаблон с названиями заголовков). Пробовал совет со скрытой строкой, но все равно не могу добиться форматирование как валюта. Может у кого-то есть рецепт?
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574209
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если речь идет о простой табличке в excel - проще всего формировать excel xml файл (файл формата excel xml 2003), и помещать его в filetable.
Вообще никаких сторонних средств не надо. Ни SSIS, ни провайдеров, ничего.
Один TSQL и функционал db engine. Only.

По тому, как сформировать файлик в формате excel xml - тут есть пара замечательных тем.
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574285
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot iii2.
Один TSQL и функционал db engine. Only.
[/quot]
Технически, это, кончено, возможно.
Но, к сожалению, SQL сервер будет формировать XML файл не под правами пользователя, запустившего запрос, а под правами аккаунта, под которым запущен SQL сервер.
А с точки зрения информационной безопасности, не рекомендую давать аккаунту, под которым выполняется SQL сервер, права на любые директории, общие папки и иные ресурсы, которые ему не нужны для штатной работы.
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574296
dtyu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SSRS

https://docs.microsoft.com/ru-ru/sql/reporting-services/report-builder/exporting-to-microsoft-excel-report-builder-and-ssrs

нагрузка уходит на отдельный сервер, расписания, права доступа, пересылка по почте или доступ через http
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574532
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ptr128iii2Один TSQL и функционал db engine. Only.


Технически, это, кончено, возможно.
Но, к сожалению, SQL сервер будет формировать XML файл не под правами пользователя, запустившего запрос, а под правами аккаунта, под которым запущен SQL сервер.
А с точки зрения информационной безопасности, не рекомендую давать аккаунту, под которым выполняется SQL сервер, права на любые директории, общие папки и иные ресурсы, которые ему не нужны для штатной работы.[/quot]
Честно говоря, не понимаю, о чем Вы.
Речь идет о версиях 2012+ и о функционале filestream, точнее - о надстройке над ним filetable.
Папка на диске отображается как таблица специального вида в базе данных. Снаружи она видится как сетевой ресурс, который существует, только когда запущен sql сервер.
Разграничение доступа к этой сетевой папке делается изнутри MSSQLSERVER, и позволяет, собственно, творить что угодно, с единственным ограничением, что это работает с windows аккаунтами.
Соответственно, запись изнутри сервера в таблицу - тоже подчиняется сикуеловской политике безопастности.
И формироваться запись будет именно под теми правами, которые даны.
Как это физически живет в ОС и сервере - не имеет никакого значения.
О чем речь то?!
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39574555
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iii2ptr128А с точки зрения информационной безопасности, не рекомендую давать аккаунту, под которым выполняется SQL сервер, права на любые директории, общие папки и иные ресурсы, которые ему не нужны для штатной работы.

Речь идет о версиях 2012+ и о функционале filestream

Во-первых, про версию не было ни слова. А у многих (сужу по нашим клиентам) еще 2008R2 стоит.

iii2Разграничение доступа к этой сетевой папке делается изнутри MSSQLSERVER, и позволяет, собственно, творить что угодно, с единственным ограничением, что это работает с windows аккаунтами.

Во-вторых, это для меня новость. Можете более подробно рассказать, как разраничивается доступ внутри FileTable между пользователями, чтобы пользователь не мог увидеть то, что выгружают остальные пользователи и не мог переписать файл, ранее выгруженный другим пользователем? MS SQL научился управлять ACL в файлах FileTable?
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39575161
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ptr128iii2Разграничение доступа к этой сетевой папке делается изнутри MSSQLSERVER, и позволяет, собственно, творить что угодно, с единственным ограничением, что это работает с windows аккаунтами.

Во-вторых, это для меня новость. Можете более подробно рассказать, как разраничивается доступ внутри FileTable между пользователями, чтобы пользователь не мог увидеть то, что выгружают остальные пользователи и не мог переписать файл, ранее выгруженный другим пользователем? MS SQL научился управлять ACL в файлах FileTable?
Да элементарно. Разнесите это по отдельным папкам, т.е. по отдельным filetable.
...
Рейтинг: 0 / 0
Автоматический экспорт результатов запроса в Excel
    #39575169
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iii2ptr128Можете более подробно рассказать, как разраничивается доступ внутри FileTable между пользователями
Да элементарно. Разнесите это по отдельным папкам, т.е. по отдельным filetable.
Вы вообще представляете себе, сколько это работы в администрировании, даже при сотне пользователей, не говоря уже о тысяче или более? Спасибо, не надо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоматический экспорт результатов запроса в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]