|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] MSSQL Вывод таблиц в файлы |
|
PowerShell - [решено] MSSQL Вывод таблиц в файлы
|
Необычный Сообщения: 4463 |
Здравствуйте.
Помогите пожалуйста с следующей ситуацией: Есть запущенный локально MSSQL сервер. Тип сервера: "Компонент Database Engine" Имя: LXA85\MSSQL_STANDART На сервере лежит база данных: Work Требуется: Пройти по всем таблицам данной базы и выполнить запрос SELECT * FROM TableName; // Где TableName -- имя текущей таблицы Результат сохранить в файл с именем TableName в форме отчета или в форме CSV. Дальше уже разберу средствами python. Т.е. как я понимаю надо получить список баз, затем в цикле foreach выполнить запрос. Все, дальше я ничего не понимаю. Особенно, как подключиться к базе и как понять, что этому мешает. Интернет почти единогласно твердит Invoke-Sqlcmd, но мне от этого не легче. Даже когда PS из Managment Studio запускаю. |
|
------- Отправлено: 18:30, 31-03-2013 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать С помощью чьей то матери получился следующий скрипт:
PS SQLSERVER:\SQL\LXA85\MSSQL_STANDART\Databases\Work> #Прописываем путь для сохранения файлов $file='D:\SQL\input ' #в кавычках! #Получаем список таблиц. Наверно можно общаться сразу с первоисточником, но мне было проще так $tables = Get-ChildItem .\Tables # Обрабатываем в цикле # Для каждой записи, именуемой в дальнейшем $t в списке таблиц $table foreach ($t in $tables) { #$filet1 = $file+'\'+$t.name+'.csv' #Формат "через запятую" #$filet2 = $file+'\'+$t.name+'.rpt' #Правильный rpt получить не удалось, поэтому для красоты #Invoke-Sqlcmd "Select * From $t" | Export-csv $filet1 #Invoke-Sqlcmd "Select * From $t" | Out-File $filet2 #Поправка! #Эта зараза имеет противное св-во съедать поля. Особенно большие, текстовые #Кроме того, если ее не пнуть, то она выставляет формат, какой понравится. Либо табличный, либо списочный. (Подробнее ) #Ясен крендель, что заниматься дополнительным анализом строения файла желания вообще никакого. # Приходится ей явно говорить, в каком виде я желаю получить ответ. Объем файлов конечно не уменьшается, а растет довольно хорошо. #В итоге тело цикла: $filet = $file+'\'+$t.name+'.lst' Invoke-Sqlcmd "Select * From $t" | Format-List | Out-File $filet } # вот и все. |
------- Последний раз редактировалось lxa85, 31-03-2013 в 21:49. Причина: форматирование вывода Отправлено: 21:01, 31-03-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - MSSQL 2008 | Loki3D | Другие серверные продукты | 13 | 09-02-2013 23:49 | |
CMD/BAT - [решено] Вывод содержимого файлы в командную строку. | KeNt606 | Скриптовые языки администрирования Windows | 9 | 17-04-2012 06:10 | |
Форматированный вывод даты и времени, БД mssql | zvezda_t | Вебмастеру | 7 | 10-02-2010 21:18 | |
MSFT SQL Server - Microsoft Share Point - как можно "выковырять" файлы из базы MSSQL? | Compozitron | Программирование и базы данных | 1 | 12-11-2006 01:46 | |
MSFT SQL Server - история о MSSQL | ViNYL_MANiAC | Программирование и базы данных | 4 | 07-08-2006 12:34 |
|