表值参数 (ODBC)
针对表值参数的 ODBC 支持通过在一个调用中向服务器发送多个行,支持客户端应用程序更有效地向服务器发送参数化数据。
有关服务器上的表值参数的信息,请参阅表值参数(数据库引擎)。
在 ODBC 中,向服务器发送表值参数有两种方式:
调用 SQLExecDirect 或 SQLExecute 时,所有表值参数数据都可以位于内存中。如果表值中有多个行,此数据存储在数组中。
应用程序可以在调用 SQLExecDirect 或 SQLExecute 时为表值参数指定执行时数据。这种情况下,可以成批提供表值的各行数据,或者一次提供一行数据,以降低内存要求。
第一个选项支持存储过程封装更多业务逻辑。例如,将订单项作为表值参数传递时,单个存储过程可以封装整个订单输入事务。由于只需与服务器往返一次,所以此选项非常有效。或者,可以使用不同的过程分别处理订单头和订单项,这需要为客户端和服务器之间提供更多的代码和更复杂的合同。
第二种方法为涉及海量数据的大容量操作提供了有效的机制。该方法支持应用程序将数据行流式传送到服务器,而不是先将所有数据缓存在内存中。
创建表变量时可以创建约束和主键。约束是确保表中数据满足特定要求的一种好方法。
本节内容
ODBC 表值参数的用法
说明表值参数和 ODBC 的主要用户方案。表值参数的 ODBC SQL 类型
说明 SQL_SS_TABLE 类型。这是一种新的支持表值参数的 ODBC SQL 类型。表值参数描述符字段
说明支持表值参数的描述符字段。表值参数构成列的描述符字段
说明包含表值参数含义的描述符字段。表值参数诊断记录字段
说明已添加到诊断记录中用于支持表值参数的两个诊断字段。影响 TVP 的语句属性
说明支持对表值参数列寻址的新描述符标题字段。表值参数和列值的绑定及数据传输
说明参数绑定以及如何将表值参数传递到服务器。准备的语句的表值参数元数据
说明应用程序如何获取准备的过程调用的元数据。其他表值参数的元数据
说明如何使用 SQLProcedureColumns、SQLTables 和 SQLColumns 检索表值参数的元数据。表值参数数据转换及其他错误和警告
说明如何处理表值参数列值的错误。跨版本兼容性
说明当 SQL Server 2008 之前版本的客户端或服务器使用表值参数时可能出现的冲突。ODBC 表值参数 API 摘要
列出支持表值参数的 ODBC 函数。ODBC 表值参数编程示例
说明如何执行常见任务。