语句的批处理

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

一批 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) 执行语句