Задание SQL Server 2008 на основе изменения хранимых процедур - PullRequest
2 голосов
/ 04 апреля 2011

Я просмотрел вопросы и ответы по SQL Server и не нашел ответа на этот вопрос, если он есть и я его пропустил, пожалуйста, дайте мне знать.

Вот ситуация:

Я пишу хранимые процедуры и представления, которые затем запускаются в виде отчетов (с использованием Crystal) - это не проблема. Прежде чем я смогу выпустить отчеты в производство, мне нужно, чтобы конечные пользователи запустили отчеты и проверили их на наличие ошибок и т. Д. В идеальном мире у меня была бы замороженная тестовая среда, но я не живу в безупречный мир. Каждую ночь все, что я помещаю в свою тестовую среду, стирается, и каждое утро все, что находится в процессе тестирования, должно быть добавлено заново. Это означает, что когда я прихожу первым делом, я запускаю всю хранимую процедуру вместе со скриптом, который отображает отчеты в программе, которую мы используем.

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

Я знаю, как настроить пакет служб SSIS для запуска хранимой процедуры, но я не знаю, как настроить пакет, который будет запускать постоянно меняющийся список хранимых процедур. Это вообще возможно? И, если это так, как мне начать?

Я должен отметить, что, хотя у меня более 10 лет опыта написания запросов, я не использовал VB начиная с VB 6.0, и я очень плохо знаком с миром SSIS и SSRS.

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 04 апреля 2011

Старый добрый nt shell сделает свое дело.Запустите этот оператор в папке, содержащей файлы.

for %A in (*.sql) DO sqlcmd -i %A -S <myServer> -d <myDb> -E

, если вы хотите включить его в пакетный файл, он может выглядеть как

@echo off
for %%A in (*.sql) DO sqlcmd -i %%A -S <myServer> -d <myDb> -E

sqlcmd -i script_to_update_config.sql -S <myServer> -d <myDb> -E   
1 голос
/ 04 апреля 2011

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

Если у вас был один файл SQL, в котором перечислены все измененные процессы и связанные с ними файлы, вы можете использовать этот единственный скриптдля запуска всех остальных http://www.devx.com/tips/Tip/15132. В этом отношении вы можете просто использовать запланированное задание для запуска его каждое утро.

Добавив еще один шаг, вы можете создать файл на основе содержимого папки(используя небольшой скрипт Powershell или тому подобное).

Я не уверен, что попытка сделать все это в пакете служб SSIS - это правильный инструмент для работы.

...