2010-01-05 63 views

回答

4

事情是這樣的:

BEGIN TRAN 

DECLARE @rc int 

EXEC @rc = EXEC inner_proc 

IF (@rc = 1) 
    INSERT something 

IF @@ERROR <> 0 
    ROLLBACK 
ELSE 
    COMMIT 
+0

如果什麼inner_proc發送郵件給別人?它會回滾嗎? – Manish 2010-01-05 12:27:19

+0

只有當你有一個交易郵件服務器...... – 2010-01-05 12:29:10

+4

但是,嚴肅地說,處理這個問題的最好方法可能是將郵件排列在數據庫表中並讓後臺進程加載併發送它們。然後,在這種情況下,郵件插入將回滾。 – 2010-01-05 12:30:03

相關問題