适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
重要
已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除 SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server。
取消当前行集以及与当前命令关联的任何批处理命令。
在 SQL Server Native Client OLE DB 访问接口中公开的 ISSAbort 接口提供 ISSAbort::Abort 方法,该方法用于取消当前行集以及使用最初生成行集的命令批处理的任何命令,以及尚未完成执行。
ISSAbort 是 SQL Server Native Client 提供程序特定的接口,可通过对 ICommand::Execute 或 IOpenRowset::OpenRowset 返回的 IMultipleResults 对象使用 QueryInterface。
语法
HRESULT Abort(void);
备注
如果中止的命令位于存储过程中,将终止存储过程(以及调用该过程的任何过程)的执行,以及包含存储过程调用的命令批处理。 如果服务器正在将结果集传输到客户端,则将停止此过程。 如果客户端不希望使用结果集,则在释放行集之前调用 ISSAbort::Abort 将加快行集释放,但是,如果存在打开的事务且 XACT_ABORT 为 ON,则当调用 ISSAbort::Abort 时,将回滚此事务
在 ISSAbort::Abort 返回 S_OK 后,关联的 IMultipleResults 接口将进入不可用状态并对于所有方法调用返回 DB_E_CANCELED(由 IUnknown 接口定义的方法除外),直到释放它为止。 如果在调用 Abort 之前已从 IMultipleResults 获取了 IRowset,则它也会进入不可用状态,并对所有方法调用返回 DB_E_CANCELED(由 IUnknown 接口和 IRowset::ReleaseRows 定义的方法除外),直到在成功调用 ISSAbort::Abort 之后释放它为止。
注意
从 SQL Server 2005(9.x)开始,如果服务器XACT_ABORT状态为 ON,则执行 ISSAbort::Abort 将在连接到 SQL Server 时终止并回滚任何当前隐式或显式事务。 SQL Server 的较早版本不中止当前事务。
参数
无。
返回代码值
S_OK
如果取消批处理,则 ISSAbort::Abort 方法返回 S_OK,否则返回 DB_E_CANTCANCEL。 如果已经取消了批处理,则返回 DB_E_CANCELED。
DB_E_CANCELED
已经取消批处理。
DB_E_CANTCANCEL
批处理未取消。
E_FAIL
出现访问接口特定的错误;若要获取详细信息,请使用 ISQLServerErrorInfo 接口。
E_UNEXPECTED
意外调用了该方法。 例如,因为已调用 ISSAbort::Abort,所以对象处于僵停状态。
E_OUTOFMEMORY
内存不足错误。