2010-10-28 17 views

उत्तर

7

एक ज़ोंबी लेनदेन एक लेनदेन है जो प्रतिबद्ध नहीं किया जा सकता है (एक अप्राप्य त्रुटि के कारण) लेकिन अभी भी खुला है।

CREATE TABLE mytable (id INT NOT NULL PRIMARY KEY) 
SET XACT_ABORT ON; 
BEGIN TRY 
     BEGIN TRANSACTION 
       INSERT 
       INTO mytable 
       VALUES (1) 
       INSERT 
       INTO mytable 
       VALUES (1) 
     COMMIT 
END TRY 
BEGIN CATCH 
     PRINT XACT_STATE() 
     SELECT * 
     FROM mytable 
     ROLLBACK; 
END CATCH 
SELECT * 
FROM mytable 

यहां, दूसरा INSERT लेनदेन ज़ोंबी प्रस्तुत करता है।

यह अब और नहीं लिख सकता है और वापस लुढ़का जाना चाहिए, लेकिन आप अभी भी अपने दायरे में पढ़ सकते हैं (सबसे कम SELECT एक रिकॉर्ड देता है; बाहरीतम नहीं करता है)।

+3

और इससे छुटकारा पाने के लिए आपको माचेटे या शॉटगन की आवश्यकता है! ... मैन, मुझे प्यार है I.T. काम। 80) – Keng

संबंधित मुद्दे