0

私はこの SSIS パッケージに取り組んでおり、失敗の優先順位の制約をテストするために SQL 実行タスクで意図的にエラーを作成しましたが、エラーがある SQL 実行タスクでスタックします。エラーの優先順位に従い、エラーが発生したときに次のステップを実行する必要があります。

基本的に、execute sql タスクのエラーは、存在しないテーブルを切り捨てていたことです...実際には、タイプミスが原因で発生する可能性があります。

すでに delayvalidation を true に設定していますが、まだ機能していません。

http://i69.photobucket.com/albums/i47/boxingpics/Untitled-2.jpg

どうすればこれを解決できますか? ありがとう!

4

2 に答える 2

1

[優先順位制約エディター] ダイアログ (優先順位制約を右クリックして [編集...] を選択) で、[論理 OR. 1 つの制約が True に評価される必要があります] を選択します。

SSIS での優先順位制約の操作:

論理 AND: 制約付きの実行可能ファイルを指すすべての優先順位制約は、その実行可能ファイルを実行するために true と評価される必要があります。これはデフォルトのオプションです。選択されている場合、矢印は塗りつぶされています。

論理 OR: 制約付きの実行可能ファイルを指す 1 つの優先順位制約のみが、その実行可能ファイルを実行するために true と評価される必要があります。このオプションを選択すると、矢印が点線になります。

于 2012-08-29T20:05:33.917 に答える
0

私は同じ問題に遭遇し、次のようにして解決しました。

  1. Int 型のパッケージ レベル変数 ErrorCount を追加します。
  2. OnError イベント ハンドラーを SQL 実行タスクに追加し、スクリプト タスクを作成します。

    2.a このスクリプト タスクは、ErrorCount 変数を ReadWriteVariable として受け取る必要があります。

    2.b スクリプトの定義では、次のことができます。

    public void Main() {
        Dts.Variables["User::ErrorCount"].Value = int.Parse(Dts.Variables["User::ErrorCount"].Value.ToString()) + 1;
        Dts.TaskResult = (int)ScriptResults.Success;
    }
    
  3. 次に、失敗の優先順位の制約で、次の設定を使用して設定する必要があります。

    評価操作:式と制約

    値:失敗

    式: @[User::ErrorCount] > 0

    複数の制約:論理 OR

これが役立つことを願っています

于 2012-08-29T20:07:21.603 に答える