Я бы подошел к этой задаче, используя SSIS, при условии, что у вас установлена Business Intelligence Development Studio (BIDS).
Сначала создайте «Контейнер цикла по каждому элементу», указывающий на папку с файлами SQL, затем используйте переменную для получения каждого имени файла.
Затем создайте соединение с плоским файлом и задайте для свойства «Строка соединения» переменную, содержащую местоположение файла.
Затем, используя компонент «Выполнить задачу SQL», установите для параметра «SQLSourceType» значение «Подключение к файлу», а для параметра «Подключение к файлу» - значение, созданное на предыдущем шаге.
Наконец, в зависимости от того, как возвращаются данные, у вас есть несколько вариантов: если набор результатов небольшой, только строка или один столбец, вы можете сохранить результаты в переменной и с помощью 'Задача «Поток данных» создает компонент «Производный столбец» и экспортирует содержимое этой переменной в файл CSV.Или, если набор данных больше, вы можете выгрузить результаты во временную таблицу, а затем, используя «OLE DB Source» и «OLE DB Destination», вы можете поместить весь набор результатов прямо в CSV.
Надеемся, что это решение не слишком запутанное, этот подход имеет то преимущество, что его можно запускать либо с удаленного компьютера, либо с самого сервера, а также можно автоматизировать его выполнение с помощью задания агента SQL.