表值参数 (ODBC)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

针对表值参数的 ODBC 支持通过在一个调用中向服务器发送多个行,支持客户端应用程序更有效地向服务器发送参数化数据。

有关服务器上的表值参数的信息,请参阅 使用Table-Valued参数 (数据库引擎)

在 ODBC 中,向服务器发送表值参数有两种方式:

  • 调用 SQLExecDirect 或 SQLExecute 时,所有表值参数数据都可以在内存中。 如果表值中有多个行,此数据存储在数组中。

  • 调用 SQLExecDirect 或 SQLExecute 时,应用程序可以为表值参数指定执行时数据。 这种情况下,可以成批提供表值的各行数据,或者一次提供一行数据,以降低内存要求。

第一个选项支持存储过程封装更多业务逻辑。 例如,将订单项作为表值参数传递时,单个存储过程可以封装整个订单输入事务。 由于只需与服务器往返一次,所以此选项非常有效。 或者,可以使用不同的过程分别处理订单头和订单项,这需要为客户端和服务器之间提供更多的代码和更复杂的合同。

第二种方法为涉及海量数据的大容量操作提供了有效的机制。 该方法支持应用程序将数据行流式传送到服务器,而不是先将所有数据缓存在内存中。

创建表变量时可以创建约束和主键。 约束是确保表中数据满足特定要求的一种好方法。

本节内容

ODBC 表值参数的用法
说明表值参数和 ODBC 的主要用户方案。

表值参数的 ODBC SQL 类型
说明 SQL_SS_TABLE 类型。 这是一种新的支持表值参数的 ODBC SQL 类型。

表值参数描述符字段
说明支持表值参数的描述符字段。

表值参数构成列的描述符字段
说明包含表值参数含义的描述符字段。

表值参数诊断记录字段
说明已添加到诊断记录中用于支持表值参数的两个诊断字段。

影响表值参数的语句属性
说明支持对表值参数列寻址的新描述符标题字段。

表值参数和列值的绑定及数据传输
说明参数绑定以及如何将表值参数传递到服务器。

准备的语句的表值参数元数据
说明应用程序如何获取准备的过程调用的元数据。

其他表值参数的元数据
介绍如何使用 SQLProcedureColumns、SQLTables 和 SQLColumns 检索表值参数的元数据。

表值参数数据转换及其他错误和警告
说明如何处理表值参数列值的错误。

跨版本兼容性
描述当表值参数由早于 SQL Server 2008 (10.0.x) 版本的客户端或服务器使用时可能发生的冲突。

ODBC 表值参数 API 摘要
列出支持表值参数的 ODBC 函数。

另请参阅

SQL Server Native Client (ODBC)
表值参数 (SQL Server Native Client)