表值参数列值可以像其他列和参数值一样在客户端和服务器数据类型之间转换。 但是,由于表值参数可以包含多个列和多行,因此必须能够识别发生错误的实际值。
在表值参数列中检测到错误或警告时,SQL Server Native Client 将生成诊断记录。 错误消息将包含表值参数的参数编号以及列序号和行号。 应用程序还可以在诊断记录中使用诊断字段SQL_DIAG_SS_TABLE_COLUMN_NUMBER和SQL_DIAG_SS_TABLE_ROW_NUMBER来确定哪些值与错误和警告相关联。 SQL Server 2008 及更高版本中提供了这些诊断字段。
诊断记录的 SQLSTATE 和消息组件将符合所有其他方面的现有 ODBC 行为。 也就是说,除了参数、行和列标识信息之外,错误消息对表值参数的值与非表值参数的值相同。