SQL Server - 新規行トリガー

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

新規行

このトリガーは、選択したテーブルまたはビューに挿入された行を処理します。 各行を個別のジョブとして処理します。 トリガーを開始すると、テーブルまたはビュー内の既存のすべての行が処理されます。 その後、各ポーリング間隔で新しい行を確認します。 WHERE条件を使用して、処理する行をフィルタリングできます。 たとえば、WHERE date > '2024-12-31'は、date列に2024年12月31日より後の値が含まれる行をフィルタリングします。

新規行トリガー新規行トリガー

入力フィールド説明
テーブル 行を処理するテーブル/ビューを選択します。
一意キー 行を一意に識別する一意キー列を選択します。 この列のリストは、選択したテーブル/ビューから生成されます。
WHERE条件 行をフィルターするための任意のWHERE条件を指定します。

行の新規バッチ

このトリガーは、選択したテーブルまたはビューに挿入された行をバッチで処理します。 トリガーを開始すると、テーブルまたはビュー内の既存のすべての行が処理されます。 その後、各ポーリング間隔で新しい行を確認します。 WHERE条件を使用して行をフィルタリングできます。 たとえば、WHERE date > '2024-12-31'は、date列に2024年12月31日より後の値が含まれる行のみをフィルタリングします。

新規行バッチトリガー新規行バッチトリガー

入力フィールド説明
テーブル 行を処理するテーブル/ビューを選択します。
一意キー 行を一意に識別する一意キー列を選択します。 この列のリストは、選択したテーブル/ビューから生成されます。
バッチサイズ このレシピの個別のジョブごとに処理するバッチサイズを設定します。
WHERE条件 行をフィルターするための任意のWHERE条件を指定します。

カスタムSQLによる新規行バッチ

このトリガーは、選択したテーブルまたはビューに挿入された行のうち、カスタムSQLに一致する行を処理します。 行をバッチで処理します。 トリガーを開始すると、テーブルまたはビュー内の既存のすべての行が処理されます。 その後、各ポーリング間隔で新しい行を確認します。 WHERE条件を使用して行をフィルタリングできます。 たとえば、WHERE date > '2024-12-31'は、date列に2024年12月31日より後の値が含まれる行のみをフィルタリングします。

サポートされているバージョン

このトリガーはSQL Server 2012以降でのみサポートされています。 SQL Server 2012以降でのみ使用可能なデフォルトのストアドプロシージャsp_describe_first_result_setを使用します。

カスタムSQL経由の新規行バッチトリガーカスタムSQL経由の新規行バッチトリガー

このトリガーはSQL Server 2008バージョン以前ではサポートされていません。

入力フィールド説明
SQL 新しい行を取得するために各ポーリング間隔で実行されるカスタムSQLクエリ。
一意キー 行を一意に識別する一意キー列を選択します。 この列のリストは、指定されたカスタムSQLから生成されます。
バッチサイズ このレシピの個々のジョブで処理するバッチサイズを設定します。 デフォルトは100です。

入力

テーブル

行の処理元となるテーブル/ビューを選択します。 これは、選択リストからテーブルを選択するか、入力フィールドをテキストモードに切り替えて完全なテーブル名を入力することで実行できます。

一意キー

この選択した列の値は、選択したテーブル内の行の重複を排除し、同じレシピで同じ行が2回処理されないようにするために使用されます。

そのため、選択した列の値がテーブル内で重複しないようにしてください。 通常、この列はテーブルの主キーです(例:ID)。 増分可能で、ソート可能である必要があります。 パフォーマンスを向上させるために、この列にインデックスを付けることもできます。

PRIMARY KEYまたはUNIQUE制約を持つ列のみ使用できます。 この要件を満たす列を確認するには、このSQLクエリを実行します。

sql
SELECT col.column_name
FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE col
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS c ON c.constraint_name = col.constraint_name
WHERE
  c.constraint_type IN ('PRIMARY KEY','UNIQUE') AND
  c.table_schema='schema_name' AND
  c.table_name='table_name'

列が見つからない場合は、ベストプラクティスを参照して、作成方法を確認してください。

バッチサイズ

各ジョブで返す行のバッチサイズ。 これは1から最大バッチサイズまでの任意の数値にできます。 最大バッチサイズは100で、デフォルトは100です。

任意のポーリングで、行数が設定されたバッチサイズより少ない場合、このトリガーはすべての行をより小さいバッチとして配信します。

WHERE条件

この条件は、1つ以上の列の値に基づいて行をフィルタリングするために使用されます。

sql
status = 'closed' and priority > 3

選択したテーブルのすべての行を処理するには、空白のままにします。

サブクエリを含む複雑なWHERE条件も使用できます。 詳細については、WHERE条件ガイドを参照してください。

SQL

行を選択するために実行するSQLを指定します。 ここで指定したSQLは、出力データツリーの生成に使用されます。 これを行うために、SQLは指定時に1回実行されます。 ここでデータピルをマッピングして、動的に変化するSQLステートメントを実行できます。 データピルは引用符('')で囲むことを忘れないでください。

SQLでTOPのような制限句を使用しないでください。 これは、クエリで返される行数の制限が、バッチサイズ入力フィールドで定義された値に基づくためです。 独自のlimit句を追加すると、アクションは失敗します。

Last updated: