表值参数 (ODBC)

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

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

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

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

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

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

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

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

本节内容