语句的批处理

Transact-SQL 语句的批处理包含用分号 (;) 分隔的两个或更多语句,这些语句内置于单个字符串中,传递给 SQLExecDirectSQLPrepare 函数。 例如:

SQLExecDirect(hstmt, 
    "SELECT * FROM Authors; SELECT * FROM Titles",
    SQL_NTS);

批处理通常可减少网络流量,因而比单个提交语句效率更高。 当前结果集完成后,可使用 SQLMoreResults 定位到下一个结果集。

当 ODBC 游标属性设置为行集大小为 1 的只进只读游标的默认值时,始终可以使用批处理。

如果在针对 SQL Server 使用服务器游标时执行批处理,则服务器游标会隐式转换为默认结果集。 SQLExecDirectSQLExecute 将返回 SQL_SUCCESS_WITH_INFO,对 SQLGetDiagRec 的调用将返回:

szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."

请参阅

概念

执行语句 (ODBC)