そのため、私の SSIS パッケージは、クエリの実行が失敗するたびに、クエリの実行からのメッセージをエラーとしてログに記録します。たとえば、私のクエリには 2 つの Print ステートメントがあり、何らかの理由でエラーのためにクエリが失敗します。SSIS は、実際のエラーと共に 2 つの print ステートメントをすべてログに記録しています。SSIS パッケージで印刷メッセージをエラーとしてログに記録したくありません。私のパッケージは、「OnError」イベント ハンドラでこの情報を読み取っています。ログのソースは System::ErrorDescription に設定されています。次のクエリを検討してください。
PRINT 'Trying to set string value to a datetime column.'
PRINT 'So i should get this error: Conversion failed when converting date and/or time from character string.'
UPDATE TempTable SET CreateDateTime = 'StringValue'
以下は、SQL Management Studio からの出力/メッセージです。最後の行が実際のエラーで、残りの行はすべて Print ステートメントです。
Trying to set string value to a datetime column.
So i should get this error: Conversion failed when converting date and/or time from character string.
**Msg 3930, Level 16, State 1, Procedure pr_TempTable, Line 3 Conversion failed when converting date and/or time from character string.**
しかし、メッセージウィンドウからのこれらの3行はすべて、SQLタスクを実行してこのクエリを実行しようとすると、SSISのOnErrorイベントハンドラーによって複数のエラーとして扱われます。