SSIS - это продукт, который, если щелкнуть его правой кнопкой мыши, в конечном итоге что-то сделает. А если серьезно, ребята, это напоминает мне плохой день у VB6 ...
Это звучит как простая вещь, но для этого нужно много щелкать правой кнопкой мыши и отбирать небольшие фрагменты кода здесь и там. Вот шаги:
- Объявите один или несколько выходные параметры в вашей хранимой процедуре (SPROC), чтобы содержать сообщения о состоянии
- В SSIS измените свой вызов в SPROC, чтобы он содержал вопросительный знак SSIS "подстановочные знаки" (или как они их называют)
- Добавьте переменную в SSIS.
- Отображение выходных параметров SPROC в переменную SSIS
- Настройте поставщика журналов в SSIS
- Включите событие , чтобы запускать запись ваших статусных сообщений в журнал
- Создайте еще одну задачу - SSIS для фактической записи данных в журнал. Я рекомендую использовать SQL, но решать вам
Если вы прочтете ссылки выше, вы поймете идею. Читайте подробности и комментарии редакторов.
Лучше всего начать с вашего SPROC, объявив один или несколько выходных параметров и установив их с вашими сообщениями о состоянии.
SET @my_status = 'Insert Started'
Возможно, вы хотите объединить все свои сообщения в один выходной параметр или иметь несколько. Вам решать.
Теперь щелкните правой кнопкой мыши холст потока управления SSIS и добавьте переменную. Промойте и повторите, если у вас больше выходных параметров SPROC.
Щелкните правой кнопкой мыши свою задачу SQL и отредактируйте свой вызов SQL, чтобы он выглядел примерно так:
EXEC myStoredProcedure ? OUTPUT
Если у вас есть входные параметры, их необходимо здесь учесть. ? Это важно, поскольку он представляет собой нумерованный параметр, начинающийся с нуля, который необходимо сопоставить, чтобы службы SSIS действительно что-либо делали с вашим сообщением о состоянии. Дизайн напоминает почтовые слияния Wordstar из каменного века персональных компьютеров.
Перейти к сопоставлению параметров. Щелкните Добавить и найдите свою переменную. Это будет что-то уродливое
User::my_status
Если бы мы все думали, что имя параметра - это имя параметра, мы все ошибались бы. В этом примере вы должны указать здесь 0 (ноль), поскольку это, очевидно, параметр нулевого eth в вашем SPROC.
Хорошо, теперь вы настроили переменную, которую вы можете регистрировать. Но ты еще не закончил. Вы должны настроить другую задачу «Выполнение SQL», чтобы это регистрировать. Я не собираюсь рассказывать вам об этом дорогом читателе, но, надеюсь, Отличная статья Аалама Ранги все еще существует, чтобы дать вам все необходимое для этого. Вкратце, вы должны: а) настроить провайдер ведения журнала SSIS, б) включить событие, которое будет запускать запись ваших данных в журнал, в) написать оператор вставки SQL с кучей дополнительных вопросительных знаков в нем, которые фактически будут записывать ваши данные. в стандартную таблицу SQL, в которую вы хотите войти. Если вы хотите войти в файл, эта статья все равно будет вам полезна. Вот код вставки, который отлично работает для SSIS и Visual Studio 2015. Спасибо, Аалам!
INSERT INTO [dbo].[sysssislog]
([event]
,[computer]
,[operator]
,[ source]
,[sourceid]
,[executionid]
,[starttime]
,[endtime]
,[datacode]
,[databytes]
,[message])
VALUES
('*SSIS-OnVariableValueChanged' -- Custom event name
,? -- param 0
,? -- param 1
,? -- param 2
,? -- param 3
,? -- param 4
,? -- param 5
,? -- param 6
,0 -- Zero
,'' -- Blank string
,?) -- param 7
Удачного щелчка правой кнопкой мыши!
person
Andrew Cowenhoven
schedule
01.03.2018