テーブル値パラメータのデータ変換およびその他のエラーと警告

テーブル値パラメータの列の値は、他の列やパラメータの値と同じ方法で、クライアントのデータ型とサーバーのデータ型間で変換できます。ただし、テーブル値パラメータには複数の列と複数の行を含めることができるため、エラーが発生した箇所の実際の値を識別できることが重要です。

テーブル値パラメータの列でエラーまたは警告が検出された場合、SQL Server Native Client によって診断レコードが生成されます。エラー メッセージには、テーブル値パラメータのパラメータ番号に加え、列序数と行番号が含まれます。アプリケーションでは、診断レコード内の SQL_DIAG_SS_TABLE_COLUMN_NUMBER および SQL_DIAG_SS_TABLE_ROW_NUMBER という診断フィールドを使用して、エラーと警告に関連付けられている値を特定することもできます。これらの診断フィールドは、SQL Server 2008 で新しく追加されました。

診断レコードの SQLSTATE コンポーネントとメッセージ コンポーネントは、他のすべての点で既存の ODBC の動作に準拠しています。つまり、パラメータ、行、列の識別情報以外は、テーブル値パラメータ以外のパラメータの場合と同様に、テーブル値パラメータの値がエラー メッセージに含まれます。