2012-12-14 61 views

回答

2

客戶端發送Attention信號到服務器:

客戶端可以中斷和通過發送Attention信息取消當前請求。這也被稱爲帶外數據,但是當前正在發送的任何TDS數據包必須在發送注意消息之前完成。在客戶端發送注意消息後,客戶端必須讀取,直到它收到注意確認。

發動機將中止batch在第一次機會(對所有實際的原因,馬上),併發送回Attention ack。在某些狀態下,批次不能被中斷,例如。同時回滾交易。在這種情況下,客戶端可能會請求中止,但只有在服務器終止不可中斷的工作後纔會出現響應。

以上情況適用於任何SQL Server客戶端堆棧,例如。完全相同的是SqlCommand.CommandTimeout如何工作。

KILL命令以非常類似的方式工作,但不是客戶端 - 服務器通信,而是殺死SPID - >受害者 - SPID通信。