次の方法で共有


SQL アダプターを使用したテーブルとビューに対する挿入、更新、削除、および選択操作

Microsoft BizTalk Adapter for SQL Server は、SQL Server データベース内の各テーブルとビューに対する一連の標準操作を表します。 これらの操作を使用すると、ターゲット テーブルまたはビューで WHERE 句によって修飾された単純な INSERT、UPDATE、SELECT、DELETE ステートメントを実行できます。 これらの操作は、データ操作言語 (DML) 操作とも呼ばれます。

次の表は、SQL アダプターがサポートする DML 操作を示しています。

操作 説明
挿入 ターゲット テーブルまたはビューに対して挿入操作を実行します。

- 挿入操作は、レコードの配列を入力として受け取ります。 各レコードはターゲット テーブルに厳密に型指定され、テーブルに挿入される行にマップされます。
- AllowIdentityInsert バインディング プロパティの値が TRUE に設定されていれば、ID 列に値を挿入できます。 AllowIdentityInsert バインド プロパティの詳細については、「BizTalk Adapter for SQL Server アダプター バインド プロパティの読み取り」を参照してください。
- 挿入操作の戻り値は Long データ型の配列です。 この配列には、挿入された行の ID 値 (存在する場合) が格納されます。 テーブルに ID 列がない場合、戻り値は NULL です。

挿入操作メッセージの一部の値は、SQL アダプターによって次のように処理されます。

- 計算列とタイムスタンプ列に指定された値は無視されます。
- ID 列のノードが null の場合は無視されます。

挿入操作メッセージ内の他のすべての値の場合:

- 列に値が指定されている場合、その値は INSERT ステートメントで使用されます。
- 特定の列のノードが null の場合、INSERT ステートメントでは NULL が使用されます。 メモ: 特定のレコードに対して INSERT ステートメントで使用できる値がない場合 (つまり、列に値が指定されなかったか、すべての列値が無視された場合) は、アダプターによって次の SQL ステートメントが実行されます。 insert into <table_name> default values
Select レコードの配列 (列) と WHERE 句を指定するクエリ文字列に基づいて、ターゲット テーブルまたはビューで SELECT ステートメントを実行します。

- SELECT ステートメントの列の一覧に値を指定する必要があります。 すべての列をテーブルまたはビューで取得する必要がある場合は、SELECT ステートメントで * を指定する必要があります。 特定の列を取得する必要がある場合は、列名をコンマで区切り、テーブルまたはビューで定義されている順序と同じ順序で指定する必要があります。
- WHERE 句は SELECT ステートメントに含める必要があります。 ただし、WHERE 句で値を指定しない場合は、要素を Query 削除するか、空のままにすることができます。
- Select 操作を使用すると、更新操作を実行することもできます。 この場合、UPDATE ステートメントは SELECT ステートメントの Query 要素内に配置されます。

Select 操作の戻り値は、厳密に型指定された結果セットで、ターゲット テーブルまたはビューから指定された列と行が含まれます。
更新 ターゲット テーブルまたはビューに対して Update 操作を実行します。

- Update 操作は、レコード ペアの配列を入力として受け取ります。 各レコード ペアは 2 つのレコードのコレクションであり、各レコードはターゲット テーブルに厳密に型指定されます。

- 最初のレコードは、更新する必要がある新しい値に対応します。つまり、UPDATE ステートメントの SET 句に対応します。
- 2 番目のレコードは行の古い値に対応します。つまり、UPDATE ステートメントの WHERE 句に対応します。 メモ: 特定のレコード ペアに対して、SET 句で使用できる値がない場合、そのレコード ペアに対して UPDATE ステートメントは実行されません。
- AllowIdentityInsert バインディング プロパティの値が TRUE に設定されている場合は、ID 列の値を更新できます。 AllowIdentityInsert バインド プロパティの詳細については、「BizTalk Adapter for SQL Server アダプター バインド プロパティの読み取り」を参照してください。
- Update 操作の戻り値は Int32 データ型で、更新された行数を示します。
更新操作メッセージの一部の値は、SQL アダプターによって次のように処理されます。

- メッセージの SET 句の計算列とタイムスタンプ列に指定された値は無視されます。
- ユーザー定義型 (UDT) がバイト順でない場合、WHERE 句の UDT 列に指定された値は無視されます。
- メッセージの SET 句で ID 列のノードが null の場合、無視されます。
- メッセージの WHERE 句で ID 列またはタイムスタンプ列のノードが null の場合、無視されます。
- メッセージの WHERE 句でイメージ、XML、テキスト、または Ntext 列のノードが null でない場合、これらの値を比較できないため、指定された値は無視されます。

Update 操作メッセージ内の他のすべての値の場合:

- UPDATE ステートメントの SET 句の列に値が指定されている場合、その値はステートメント (set <column_name> = <value>) の SET 句で使用されます。
- SET 句で特定の列のノードが null の場合、UPDATE ステートメント (set <column_name> = null) では NULL が使用されます。
- UPDATE ステートメントの WHERE 句の列に値が指定されている場合、その値はステートメント (where <column_name> = <value>) の WHERE 句で使用されます。
- UPDATE ステートメントの WHERE 句で特定の列のノードが null の場合、UPDATE ステートメント (where <column_name> is null) では NULL が使用されます。
削除 ターゲット テーブルのレコードの厳密に型指定された配列 (列名のリスト) と WHERE 句を指定するフィルター文字列に基づいて、ターゲット テーブルまたはビューに対して Delete 操作を実行します。

Delete 操作の戻り値は Int32 データ型で、削除された行数を示します。

Delete 操作メッセージの一部の値は、SQL アダプターによって次のように処理されます。

- メッセージの WHERE 句でイメージ、XML、テキスト、または Ntext 列のノードが null でない場合、これらの値を比較できないため、指定された値は無視されます。
- ID またはタイムスタンプ列のノードが null の場合は無視されます。
- UDT がバイト順でない場合、WHERE 句の UDT 列に指定された値は無視されます。

削除操作メッセージ内の他のすべての値の場合:

- 列に値が指定されている場合、値は DELETE ステートメント (where <column_name> = <value>) の WHERE 句で使用されます。
- 特定の列のノードが null の場合、DELETE ステートメント (where <column_name> is null) では NULL が使用されます。 メモ: 特定のレコードに対して、DELETE ステートメントで使用できる値がない場合 (つまり、どの列にも値が指定されていないか、存在するすべての列値が無視された場合)、アダプターは DELETE ステートメントを実行しません。

詳細情報は、次のとおりです。

参照

アダプターを使用して SAP システムに接続する