Как выполнить папку со скриптами SQL Server 2008 - PullRequest
0 голосов
/ 16 января 2012

У меня есть папка с файлами .sql; 1 файл на запрос. Я хочу выполнить все запросы / файлы sql и сохранить их как CSV.

Есть ли способ сделать это автоматически без использования Windows Cli (отключено в моей среде). У меня есть SQL Server Management Studio.

Ответы [ 3 ]

3 голосов
/ 16 января 2012

Я бы подошел к этой задаче, используя SSIS, при условии, что у вас установлена ​​Business Intelligence Development Studio (BIDS).

Сначала создайте «Контейнер цикла по каждому элементу», указывающий на папку с файлами SQL, затем используйте переменную для получения каждого имени файла.

Затем создайте соединение с плоским файлом и задайте для свойства «Строка соединения» переменную, содержащую местоположение файла.

Затем, используя компонент «Выполнить задачу SQL», установите для параметра «SQLSourceType» значение «Подключение к файлу», а для параметра «Подключение к файлу» - значение, созданное на предыдущем шаге.

Наконец, в зависимости от того, как возвращаются данные, у вас есть несколько вариантов: если набор результатов небольшой, только строка или один столбец, вы можете сохранить результаты в переменной и с помощью 'Задача «Поток данных» создает компонент «Производный столбец» и экспортирует содержимое этой переменной в файл CSV.Или, если набор данных больше, вы можете выгрузить результаты во временную таблицу, а затем, используя «OLE DB Source» и «OLE DB Destination», вы можете поместить весь набор результатов прямо в CSV.

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

2 голосов
/ 16 января 2012

Создание консольного приложения VB.NET.

Создание списка файлов, заканчивающихся на .SQL, из рассматриваемой папки.

Загрузка содержимого каждого файла в отдельные команды SQL

Выполните команду SQL для каждого, сохраняя результаты в наборах данных.

Для каждой таблицы в каждом наборе данных создайте новый файл .csv

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

0 голосов
/ 17 января 2012

Используйте 'for' в сочетании с командой sqlcmd или bcp для каждого файла в папке сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...