दिलचस्प पोस्ट
जावास्क्रिप्ट एनीमेशन उबुंटू 14.04 एलटीएस (ट्रस्टी ताहर) में ia32-libs को कैसे स्थापित करें Mockito: जेनेरिक मापदंडों के साथ सत्यापन करना फैंसी बॉक्स में iframes के साथ पहले शो समारोह? एकाधिक एक्सेल शीट में निर्यात ग्रिड दृश्य मैं अपनी स्ट्रिंग तुलना केस असंवेदनशील कैसे कर सकता हूं? स्ट्रिंग से केवल 0- 9 अंकों की वापसी करें डाटाबेस – डेटा वर्जनिंग एक बड़ा HTML- स्ट्रिंग से एक jQuery ऑब्जेक्ट बनाना एंड्रॉइड वेबव्यू जियोलोकेशन निर्धारित करें कि एक जावा एप्लिकेशन एक्लिप्स् में डिबग मोड में है स्पर्न की प्रक्रिया को स्ट्रिंग में कैप्चर करें ऐप ठीक आईओएस 8 आईफोन सिम्युलेटर का आकार नहीं है I PHP में call_user_func_array के साथ कन्स्ट्रक्टर को कॉल कैसे करें कोणीय – घटकों के बीच साझा सेवा काम नहीं करती

SQL सर्वर 2008 में लेनदेन का सही इस्तेमाल

मेरे पास 2 आज्ञाएं हैं और उनमें से दोनों को सही तरीके से क्रियान्वित किया गया है या उनमें से कोई भी निष्पादित नहीं है। इसलिए मुझे लगता है कि मुझे एक लेनदेन की आवश्यकता है, लेकिन मुझे नहीं पता कि इसका सही ढंग से उपयोग कैसे करना है

निम्नलिखित स्क्रिप्ट के साथ समस्या क्या है?

BEGIN TRANSACTION [Tran1] INSERT INTO [Test].[dbo].[T1] ([Title], [AVG]) VALUES ('Tidd130', 130), ('Tidd230', 230) UPDATE [Test].[dbo].[T1] SET [Title] = N'az2' ,[AVG] = 1 WHERE [dbo].[T1].[Title] = N'az' COMMIT TRANSACTION [Tran1] GO 

insert कमांड निष्पादित लेकिन update आदेश में एक समस्या है। मैं इन दोनों आज्ञाओं को वापस करने के लिए कैसे लागू कर सकता हूं अगर उनमें से किसी को निष्पादन में कोई त्रुटि है?

Solutions Collecting From Web of "SQL सर्वर 2008 में लेनदेन का सही इस्तेमाल"

ट्रांजैक्शन विफल रहता है, यदि लेन-देन सफल होता है, तो एक प्रयास / कैच ब्लॉक जोड़ें, लेन-देन असफल हो जाता है, तो वह बदलाव लाएगा:

 BEGIN TRANSACTION [Tran1] BEGIN TRY INSERT INTO [Test].[dbo].[T1] ([Title], [AVG]) VALUES ('Tidd130', 130), ('Tidd230', 230) UPDATE [Test].[dbo].[T1] SET [Title] = N'az2' ,[AVG] = 1 WHERE [dbo].[T1].[Title] = N'az' COMMIT TRANSACTION [Tran1] END TRY BEGIN CATCH ROLLBACK TRANSACTION [Tran1] END CATCH GO 

संग्रहीत कार्यप्रणाली की शुरुआत में एक एसटीटी XACT_ABORT चालू कर देना चाहिए ताकि त्रुटि के मामले में एसक्यूएल सर्वर को स्वचालित रूप से रोलबैक लेनदेन के लिए निर्देश दिया जा सके। यदि ओमिट किया गया हो या बंद करने के लिए सेट किया गया तो प्रत्येक वक्तव्य के बाद @@ त्रुटि का परीक्षण करने की आवश्यकता है या TRY का उपयोग करें … कैच रोलबैक ब्लॉक

आसान दृष्टिकोण:

 CREATE TABLE T ( C [nvarchar](100) NOT NULL UNIQUE, ); SET XACT_ABORT ON -- Turns on rollback if T-SQL statement raises a run-time error. SELECT * FROM T; -- Check before. BEGIN TRAN INSERT INTO T VALUES ('A'); INSERT INTO T VALUES ('B'); INSERT INTO T VALUES ('B'); INSERT INTO T VALUES ('C'); COMMIT TRAN SELECT * FROM T; -- Check after. DELETE T;