1

PHP(trigger_error( "xyz"、E_USER_NOTICE))のようなユーザー通知をSSISパッケージで「実行結果」に生成することは可能ですか?

(PRINTは表示されません。)

//php//
trigger_error("100 rows effected", E_USER_NOTICE); 

SSISパッケージでデータフロータスクを実行した後に使用されるTSQLステートメント:

--T-SQL--
IF @COUNT_A_2 = 0 AND @COUNT_B_2 = 0 
BEGIN
RAISERROR('Import.A_B', 16, 1) -- ######## USER_NOTICE ################

--  recert.A_B befüllen--
INSERT INTO  recert.A_B (A_id, B_id)
SELECT K.A_id AS A_id, L.ID AS B_id
FROM dbo.K AS K
JOIN recert.L AS L ON K.B = L.name
WHERE NOT EXISTS (  SELECT * FROM recert.A_B AS D 
                    WHERE D.A_id = K.A_id AND K.B = L.name 
                  )
PRINT 'recert.A_B befüllt. / INSERT.A_B'

[...]

-- Leeren der Tabellen --
DELETE FROM [testdb].[dbo].[W]

END  
ELSE
BEGIN
    PRINT 'Daten nicht verarbeitet / NO data inserted' 
    RaisError('Daten nicht verarbeitet / NO data inserted',18,1) 
    -- stopps SISS Package. OK.
END
4

1 に答える 1

0

はい。ただし、影響を受ける行の数は SSIS で利用できるはずです。たとえば、SQL ステートメントで影響を受ける行の数を返し、[SQL タスクの実行] エディターの [ResultSet] タブを使用してそれらを変数にロードできます。

次に、次のいずれかの方法を使用して、「スクリプト タスク」でイベント (進行状況、情報) を発生させることができます。

Dts.Events.FireProgress
Dts.Events.FireInformation

そのスクリプト タスクを制御フローに追加するか、「SQL 実行タスク」の OnPostExecute イベント ハンドラーに追加します。

于 2012-04-20T10:04:05.710 に答える