取消当前行集以及与当前命令关联的任何批处理命令。
语法
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 开始,如果服务器XACT_ABORT状态为 ON,则执行 ISSAbort::Abort 会在连接到 SQL Server 时终止并回滚任何当前隐式或显式事务。 早期版本的 SQL Server 不会中止当前事务。
论据
没有。
返回代码值
S_OK
如果取消批处理并 DB_E_CANTCANCEL,ISSAbort::Abort 方法将返回S_OK。 如果批处理已取消,则返回DB_E_CANCELED。
DB_E_CANCELED
批处理已取消。
DB_E_CANTCANCEL
批处理未取消。
E_FAIL
发生了提供程序特定的错误;有关详细信息,请使用 ISQLServerErrorInfo 接口。
E_UNEXPECTED (意外错误)
意外调用了该方法。 例如,对象处于僵尸状态,因为 ISSAbort::Abort 已调用。
E_OUTOFMEMORY
内存不足错误。