SQL Server 2005 の統合サービス パッケージのスクリプト タスクを使用してアプリケーション イベント ログに情報を書き込む方法

概要

Microsoft SQL Server 2005 の統合サービス (SSIS) パッケージを作成する Microsoft SQL Server ビジネス インテリジェンス開発 Studio を使用する場合は、タスクを実行する SSIS パッケージのスクリプト タスクを含めることができます。

などのタスクは、変数の情報のコレクションを Windows アプリケーション イベント ログに書き込む場合があります。データ フロー タスクを含む SSIS パッケージを作成することができます。このデータ フロー タスクには、行カウント変換が含まれています。Windows アプリケーション イベント ログに行カウント変換によって値が設定されたデータを書き込むスクリプト タスクを使用できます。

この資料では、Windows アプリケーション イベント ログに情報を書き込むスクリプト タスクを使用する方法について説明します。

詳細

次の使用例は、SSIS パッケージに次の要素を作成することを前提とします。

  • データ フロー タスク

  • スクリプト タスク

  • スクリプト タスクをデータ フロー タスクからコネクタ

  • データ フロー タスクでは、データ フロー内の行カウント変換を作成しました。

パッケージを実行すると、行カウント変換は、Windows アプリケーション イベント ログへの書き込みに使用する行カウント データを返します。

これを行うには、次の SQL Server ビジネス インテリジェンス開発 Studio でこれらの手順を実行します。

  1. [制御フロー ] タブがアクティブなとき、デザイン サーフェイスを右クリックしし、し、[変数] をクリックします。 左側のペインで、[変数] ウィンドウが表示されます。

  2. [変数] ウィンドウで、mycount という変数を追加する追加の変数をクリックします。既定では、新しい mycount 変数のデータ型は、 Int32は。

  3. 変数名への参照は、大文字小文字を区別します。

  4. データ フロータスクをダブルクリックします。、
    データ フロー ] タブが表示されます。

  5. 行カウント変換をダブルクリックします。[詳細エディター ] ダイアログ ボックスが表示されます。

  6. VariableNameプロパティの値を設定します。
    mycount。

  7. [制御フロー ] タブをクリックし、スクリプト タスクをダブルクリックします。スクリプト タスク エディター ] ダイアログ ボックスが表示されます。

  8. 左側のウィンドウでスクリプト項目をクリックし、 ReadOnlyVariablesプロパティの値を次の値に変更します。

    PackageName,StartTime,ExecutionInstanceGUID,mycount
  9. パッケージ、開始時刻、および ExecutionInstanceGUID の項目は、システム変数です。これらのシステム変数は、パッケージ情報を Windows アプリケーション イベント ログに書き込むに使用されます。


  10. スクリプト タスク エディター ] ダイアログ ボックスで、[スクリプトのデザイン] をクリックします。

  11. その他の宣言の前に、コードで次の名前空間が含まれていることを確認します。

    Imports System
    Imports System.Data
    Imports System.Math
    Imports System.Diagnostics
    Imports Microsoft.SqlServer.Dts.Runtime
  12. 新しいアプリケーション用の Microsoft Visual Studioウィンドウが表示されたら、次のサンプル コードをMain()メソッド内のコードに置き換えます。

    Dim varMyCount As Variable = Dts.Variables("mycount") '
    Dim varPackageName As Variable = Dts.Variables("PackageName")
    Dim varStartTime As Variable = Dts.Variables("StartTime")
    Dim varInstanceID As Variable = Dts.Variables("ExecutionInstanceGUID")
    Dim PackageDuration As Long

    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    ' Event log needs
    '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Dim sSource As String
    Dim sLog As String
    Dim sEventMessage As String
    Dim sMachine As String
    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    PackageDuration = DateDiff("s", varStartTime.Value, Now())

    sSource = "RowCountReporting from SSIS"

    ' We need the message posted to the Application event log.

    sLog = "Application"
    sEventMessage = "Rows Processed: " & Chr(10) _
    & " case Rows:" + varMyCount.Value().ToString + Chr(10) _
    & "=============================================" & Chr(10) _
    & "The Package: " + varPackageName.Value().ToString _
    & Chr(10) _
    & "Started: " & varStartTime.Value().ToString _
    & Chr(10) _
    & "Current Time:" & System.DateTime.Now _
    & Chr(10) _
    & "=============================================" _
    & Chr(10) _
    & "Package Run Duration in seconds: " & PackageDuration _
    & Chr(10) _
    & "Execution GUID: " & varInstanceID.Value().ToString
    sMachine = "."

    If Not EventLog.SourceExists(sSource, sMachine) Then
    EventLog.CreateEventSource(sSource, sLog, sMachine)
    End If

    Dim ELog As New EventLog(sLog, sMachine, sSource)

    ELog.WriteEntry(sEventMessage, EventLogEntryType.Information, 777, 2)

    '###############################
    Dts.TaskResult = Dts.Results.Success
  13. Microsoft Visual Studio のアプリケーションのウィンドウを閉じます。


  14. スクリプト タスク エディター ] ダイアログ ボックスで、[ OK] をクリックします。

  15. パッケージを実行するf5 キーを押します。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×