यदि कोई है तो इस लेनदेन को सम्मिलित/अद्यतन विफलताओं और रोलबैक के लिए परीक्षण करने का सही तरीका क्या है? मुझे नहीं लगता कि मेरे पास क्या काम आएगा क्योंकि मेरे आवेषण/अपडेट 3 अलग-अलग कथन हैं और @@ ROWCOUNT केवल अंतिम कथन को निष्पादित करेगा।एकाधिक प्रविष्टियों या अपडेट के आसपास लेनदेन का उपयोग करने का उचित तरीका
BEGIN TRANSACTION Script;
GO
INSERT INTO TableA (id) VALUES (1)
INSERT INTO TableB (id) VALUES (1)
UPDATE TableC SET id=1 WHERE id=2
GO
IF (@@ROWCOUNT=3 AND @@ERROR=0)
BEGIN
COMMIT
END
ELSE
BEGIN
PRINT 'Error: Rolling back transaction'
ROLLBACK TRANSACTION Script
END
GO
यह ठीक है, एक विफलता संदेश मुद्रण से मुझे को सीमित करता है? –
@ जोपहिलिप्स कृपया मेरे अपडेट किए गए उत्तर की जांच करें। –
लेन-देन रोलबैक के दौरान SET XACT_ABORT ऑन एट्रिब्यूट एक त्रुटि संदेश उठाएगा? – Raza