Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] MSSQL Вывод таблиц в файлы

Ответить
Настройки темы
PowerShell - [решено] MSSQL Вывод таблиц в файлы

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте.
Помогите пожалуйста с следующей ситуацией:
Есть запущенный локально MSSQL сервер.
Тип сервера: "Компонент Database Engine"
Имя: LXA85\MSSQL_STANDART

На сервере лежит база данных: Work

Требуется:
Пройти по всем таблицам данной базы и выполнить запрос
SELECT * FROM TableName; // Где TableName -- имя текущей таблицы
Результат сохранить в
файл с именем TableName в форме отчета или в форме CSV. Дальше уже разберу средствами python.

Т.е. как я понимаю надо получить список баз, затем в цикле foreach выполнить запрос.

Все, дальше я ничего не понимаю. Особенно, как подключиться к базе и как понять, что этому мешает.
Интернет почти единогласно твердит Invoke-Sqlcmd, но мне от этого не легче.
Даже когда PS из Managment Studio запускаю.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 18:30, 31-03-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить 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
}
# вот и все.
Да чтобы этим программистам всю жизнь с психопатами общаться!

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 31-03-2013 в 21:49. Причина: форматирование вывода


Отправлено: 21:01, 31-03-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] MSSQL Вывод таблиц в файлы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - 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




 
Переход