取消命令 (XMLA)

根据发出命令的用户的管理权限不同,XML for Analysis (XMLA) 中的 Cancel 命令可以取消针对会话的命令、会话、连接、服务器进程或者关联的会话或连接。

取消命令

用户可以通过发送不带任何指定属性的 Cancel 命令,取消当前显式会话上下文中当前正在执行的命令。

注意注意

用户不能取消隐式会话中正在运行的命令。

取消 Batch 命令

如果用户取消了一个 Batch 命令,则会取消该 Batch 命令中尚未执行的所有其余命令。如果 Batch 命令是事务性的,则会回滚在 Cancel 命令运行前已执行的所有命令。

取消会话

数据库管理员或服务器管理员通过在 Cancel 命令的 SessionID 属性中指定显式会话的会话标识符,可以取消会话,包括当前正在执行的命令。数据库管理员只能取消其拥有管理权限的数据库的会话。

数据库管理员可以通过检索 DISCOVER_SESSIONS 架构行集来检索指定数据库的活动会话。若要检索 DISCOVER_SESSIONS 架构行集,数据库管理员需要使用 XMLA Discover 方法,并在 Discover 方法的 Restrictions 属性中为 SESSION_CURRENT_DATABASE 限制列指定相应的数据库标识符。

取消连接

服务器管理员通过在 Cancel 命令的 ConnectionID 属性中指定连接标识符,可以取消与给定连接关联的所有会话(包括所有正在运行的命令),并取消该连接。

注意注意

如果 MicrosoftSQL ServerAnalysis Services 实例无法找到和取消与某连接关联的会话,例如在提供 HTTP 连接的同时数据抽取打开了多个会话,则该实例将无法取消该连接。如果在执行 Cancel 命令时遇到了这种情况,则会发生错误。

服务器管理员可以检索 Analysis Services 实例的活动连接,方法是使用 XMLA Discover 方法检索 DISCOVER_CONNECTIONS 架构行集。

取消服务器进程

服务器管理员通过在 Cancel 命令的 SPID 属性中指定服务器进程标识符 (SPID),可以取消与给定 SPID 关联的命令。

取消关联的会话和连接

可以通过将 CancelAssociated 属性设置为 True 取消与 Cancel 命令中指定的连接、会话或 SPID 关联的连接、会话和命令。