Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Добрый день!
Есть несколько баз данных с множеством таблиц. Скажите пожалуйста каким образом можно автоматизировать выгрузку отчетности?
Например, чтобы каждый день, в 23:00 запускались 20 sql запросов и полученные данные автоматических сохранялись в текстовые файлы.
25 июн 14, 11:15    [16215756]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
гость 18
Guest
oleg1n89,

создать job
25 июн 14, 11:17    [16215780]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Сейчас читаю данную статью - http://msdn.microsoft.com/ru-ru/library/ms186273.aspx, здесь написано что
автор
Чтобы создать задание, пользователь должен быть членом одной из предопределенных ролей базы данных агента SQL Server или членом предопределенной роли сервера sysadmin

У меня права только на чтение баз данных.
25 июн 14, 11:29    [16215890]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Написать повершел / бат который кверит даные и сохраняет их в фал. Файл зашедулить виндовым планировщиком
25 июн 14, 11:31    [16215906]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Maxx,
автор
Написать повершел / бат который кверит даные и сохраняет их в фал.

а каким образом это сделать?)
25 июн 14, 11:35    [16215956]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
oleg1n89,

крме как написать - никак :) Берите любой язык на котром вы умеете писать...и вперед
25 июн 14, 11:37    [16215983]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
jubatus
Member

Откуда: Москва
Сообщений: 6
как вариант, перебирает все файлы с расширением sql из текущей папки

set server=XX.XXX.XX.XXX
set user=user1
set pwd=password123
set db=maindb

@Echo On
FOR /f %%i IN ('DIR *.Sql /B') do call :RunScript %%i
GOTO :END

:RunScript

Echo Executing %1
SQLCMD -S %server% -U %user%  -P %pwd% -d %db% -i %1
Echo Completed %1

:END
25 июн 14, 11:41    [16216029]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Maxx,
автор
крме как написать - никак :) Берите любой язык на котром вы умеете писать...и вперед

хаха)) это понятно, я в программировании не силен)) можете кинуть хотя бы шаблон?)
я так понимаю, что там должно быть прописано сначала подключение к серверу с базами данных, потом сам запрос и потом что-то, что будет автоматически сохранять данные в текстовый файл?
25 июн 14, 11:42    [16216035]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
jubatus, у меня еще такая ерунда, что когда сохраняю запрос с расширением sql, а потом пробую запустить двойным кликом, он пишет сообщение о неопознанной ошибке(
25 июн 14, 11:49    [16216133]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
oleg1n89
jubatus, у меня еще такая ерунда, что когда сохраняю запрос с расширением sql, а потом пробую запустить двойным кликом, он пишет сообщение о неопознанной ошибке(

упс - отойдите от сервера :) кто вам вообще такую задачу то поставил ?
25 июн 14, 11:53    [16216172]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Можно обычным VBS скриптом, вчера как раз писал об этом.
Еще раз код примера:
' запрос
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open "Provider=SQLOLEDB;Data Source=MY_SERVER;Trusted_Connection=Yes;Initial Catalog=MY_DATABASE;"
objRecordSet.Open "SELECT * FROM table1", objConnection, adOpenStatic, adLockOptimistic
objRecordSet.MoveFirst

' вывод в файл
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile ("c:\exchange\#result.txt", ForAppending, True)
objTextFile.WriteLine("записей всего: " & objRecordSet.RecordCount)
objTextFile.Close
Wscript.Echo objRecordSet.RecordCount
25 июн 14, 11:55    [16216197]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4900
oleg1n89,

А вы не хотите SSRS задействовать, благо у него есть встроенный функционал подписок.

http://msdn.microsoft.com/en-us/library/ms159762.aspx
25 июн 14, 12:22    [16216555]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Всем спасибо за ответы, разобрался=)
Все решается довольно легко)
26 июн 14, 13:05    [16222720]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
А как можно настроить более корректное отображение выходных данных в файл?
sqlcmd -SNameServer\... -iC:\SQLQuery\SQLQuery1.sql -oC:\Reportsl\Name.xls
Выгружает данные не по столбцам, а в одну строчку((
30 июн 14, 10:15    [16237034]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Glory
Member

Откуда:
Сообщений: 104751
oleg1n89
Выгружает данные не по столбцам, а в одну строчку

Написать соответствующий запрос в SQLQuery1.sql
30 июн 14, 10:17    [16237044]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Можете еще задать пустой разделитель столбцов
30 июн 14, 10:40    [16237160]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
Мне нужно вывести данные в текстовый файл с разделителями табуляцией
30 июн 14, 10:44    [16237170]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Glory
Member

Откуда:
Сообщений: 104751
oleg1n89
Мне нужно вывести данные в текстовый файл с разделителями табуляцией

Вы уж определитесь - в одну строку или с разделителями
30 июн 14, 10:45    [16237172]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
=)))
Данные сохраняются в строчках, а не в отдельных ячейках. В excel можно вручную подредактировать, путем:
Данные->Текст по столбцам.
Я хочу, чтобы вручную не редактировать постоянно, сразу настроить корректный вывод данных.
30 июн 14, 10:52    [16237191]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Glory
Member

Откуда:
Сообщений: 104751
oleg1n89
Данные сохраняются в строчках, а не в отдельных ячейках. В excel можно вручную подредактировать, путем:
Данные->Текст по столбцам.
Я хочу, чтобы вручную не редактировать постоянно, сразу настроить корректный вывод данных.

А причем тут MSSQL ?
Если вас не устраивает результат запроса, то перепишите его так, как вам надо.
30 июн 14, 10:53    [16237197]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
oleg1n89
Member

Откуда:
Сообщений: 13
хахахах)))
Выгрузка отчетности идет автоматически в файл xls, который можно подредактировать и поставить разделители. Хотелось бы узнать, что нужно прописать, чтобы выгрузка происходила сразу с разделителями?)))
30 июн 14, 11:01    [16237236]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Перепишите запрос в моем примете с нужными Вам разделителями.
30 июн 14, 11:05    [16237257]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматизировать выгрузку отчетности в MS SQL Server 2008?  [new]
Glory
Member

Откуда:
Сообщений: 104751
oleg1n89
Хотелось бы узнать, что нужно прописать, чтобы выгрузка происходила сразу с разделителями?)))

Прочитать в хелпе про параметры утилиты sqlcmd
30 июн 14, 11:05    [16237262]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить