6

मुझे क्लाइंट के डेटाबेस में संग्रहीत प्रक्रिया पर एक परीक्षण चलाने की आवश्यकता है। डेटाबेस में डेटा को प्रभावित किए बिना संग्रहीत प्रक्रिया का परीक्षण करने के लिए वैसे भी है?डाटाबेस को प्रभावित किए बिना संग्रहीत प्रक्रिया परीक्षण

उदाहरण के लिए, एसपी में एक सम्मिलित क्वेरी है, जो डेटाबेस के डेटा को बदल देगी।

क्या इस समस्या को हल करने के लिए वैसे भी है?

उत्तर

3

आप एक लेनदेन में संग्रहीत प्रक्रिया चला सकते हैं। टिप्पणी पंक्तियों के बीच अपने बयान रखकर इस स्क्रिप्ट का प्रयोग करें। पूरी लिपि चलाएं, आपका लेनदेन एक असामान्य स्थिति में होगा। फिर, लाइन रोलबैक या COMMIT को हाइलाइट करें और समाप्त करने के लिए तदनुसार निष्पादित करें।

हमेशा बैकअप लें।

यदि संभवतः सिद्धांत के मामले में आपके क्लाइंट डेटा से दूर एक सैंडबॉक्स में सैंडबॉक्स में काम करना संभव है।

ध्यान रखें कि आप जो अपने ग्राहक द्वारा अन्य एसक्यूएल बयान को रोक सकता है, जबकि आप निर्णय लेते हैं प्रतिबद्ध या रोलबैक के लिए कि क्या डेटा ताला लगा जा सकता है।

BEGIN TRANSACTION MyTransaction 
GO 

-- INSERT SQL BELOW 


-- INSERT SQL ABOVE 

GO 
IF @@ERROR != 0 
BEGIN 
     PRINT '--------- ERROR - ROLLED BACK ---------' 
     ROLLBACK TRANSACTION MyTransaction 
END 
ELSE 
BEGIN 
     PRINT '--------- SCRIPT EXECUTE VALID ---------' 
     PRINT '--------- COMPLETE WITH ROLLBACK OR COMMIT NOW! ---------' 
     --ROLLBACK TRANSACTION MyTransaction 
     --COMMIT TRANSACTION MyTransaction 
END 
2

सपा डेटा को बदलने के लिए है, और आप को बदलने के लिए डेटा की अनुमति नहीं देते हैं, तो कैसे होगा आप "परीक्षण" सपा? क्या आप बस सुनिश्चित करेंगे कि यह मर नहीं जाता है? क्या होगा यदि यह कोई त्रुटि नहीं देता है, लेकिन कोई डेटा सम्मिलित नहीं करता है?

आप वालमास के सुझाव के समान पथ का पालन कर सकते हैं, लेकिन आपको वास्तव में परीक्षण एसपी की आवश्यकता होगी।

  1. एक सौदे
  2. कॉल सपा के साथ डेटाबेस में किसी भी परीक्षा डेटा बनाएं शुरू करें: उदाहरण के लिए, विशेष रूप से डेटा विशेष पैरामीटर मान के आधार पर डाला जा के लिए होती हैं, तो आप करना होगा विशेष पैरामीटर
  3. फिर भी महत्व देता लेन-देन के भीतर, देखने के लिए डेटाबेस की जाँच करता है, तो सही पंक्तियों
  4. रोल वापस डाला गया लेन-देन

मैं आपको कोड नहीं दिखा सकता, लेकिन मुझे विजुअल स्टूडियो यूनिट टेस्ट फ्रेमवर्क का उपयोग करके उपरोक्त कोड को .NET में करने में सफलता मिली है। कोई भी न्यूटिट या किसी अन्य यूनिट टेस्ट फ्रेमवर्क के साथ ऐसा ही कर सकता है। मैंने विजुअल स्टूडियो डाटाबेस प्रोजेक्ट्स की डाटाबेस यूनिट टेस्ट फीचर का उपयोग नहीं किया। लेनदेन को नियंत्रित करने के लिए मैंने ADO.NET और SqlTransaction कक्षा का उपयोग करके कोड में ऊपर दिए गए चरणों को बस किया।

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