2011-06-27 32 views
2

我在SQL Server 2008中有一個存儲過程,它執行了相當多的插入/刪除/更新操作。如何檢查存儲過程是否完成了所有的插入/刪除/更新操作?

現在我想知道是否有任何方式可以檢測到存儲過程是否已完成ALL插入/刪除/更新操作

另外,據我所知,可以從存儲過程返回值,在這種情況下,這裏可以是一個statusCode(0/1)。但是通過我的一些實驗,我發現一旦存儲過程的執行完成,statusCode總是會立即返回,而同時插入/刪除/更新實際上仍在運行。那麼在插入/刪除/更新操作全部完成後,我應該怎麼做才能看到statusCode纔會返回?

謝謝。

代碼結構:

BEGIN 
    DECLARE @statusCode 
    SET @statusCode = 0 

    -- Loop through all tables in a given database 
    -- using cursor 
    -- do Insert/Update/ Delete operations 

    SET @statusCode = 1 
    SELECT @statusCode 
END 
+0

接受你的問題的答案被認爲是禮貌的。在很大程度上,你忽視了這樣做。你可能想回去接受你以前的問題的答案。這可能會激發其他StackOverflow用戶的進一步幫助。 – Rodrigo

+0

@Rodrigo謝謝你的提醒。是的,我已經標記了這個職位的答案,並會審查以前的職位,並標記那些尚未標記的職位。 – woodykiddy

回答

2

如果存儲過程返回,該呼叫的所有操作完成。

你有沒有看到繼續操作一個存儲過程完成,除非另一連接正在變化太大了。首先,它會打破A在ACID

+0

@gbn嗯,這很有趣。我在SQL Server 2008中運行了存儲過程,實際上我發現它在查詢執行完成之前就返回了值。 – woodykiddy

+0

@woodykiddy:這是不可能的。這很簡單。 – gbn

+0

@gbn感謝維基鏈接,我正在閱讀它。 – woodykiddy

相關問題