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 ステートメントを実行しません。 |
詳細情報は、次のとおりです。
BizTalk Serverを使用してこれらの操作を実行する方法については、「SQL アダプターでBizTalk Serverを使用して操作を挿入、更新、削除、または選択する」を参照してください。
DML 操作を実行するためのメッセージ構造と SOAP アクションについては、「 テーブルとビューに対する挿入、更新、削除、および選択操作のメッセージ スキーマ」を参照してください。