2010-10-22 7 views
10

हम यहाँ हमारे नए सॉफ्टवेयर का परीक्षण करने के प्रयास कर रहे हैं की अवधि जो एसक्यूएल 2005 हम चाहते हैं पर आधारित है के लिए लॉक एसक्यूएल तालिका देखें कि यह कैसे जवाब देंगे जब तालिकाओं जो सॉफ्टवेयर सम्मिलित/अपडेट करने के दौरान उपयोग कर रहा है में से एक बंद हो जाता है।समय

वहाँ एसक्यूएल 2005 में एक तरह से हम इस अनुकरण कर सकते हैं है? ताकि हम देख सकें कि हम सामने के अंत में त्रुटि को कैसे नियंत्रित कर सकते हैं?

+0

एक सौदे ओपन चला सकता हूँ? – Amber

उत्तर

5

दूसरे सत्र का उपयोग करना,

  1. एक BEGIN TRANSACTION

  2. कॉल UPDATE table set columnName = columnName

  3. करो भागो अपने परीक्षण

  4. सत्यापित करें कि आपका परिणाम

  5. COMMIT TRAN/ROLLBACK TRAN लेनदेन

27

एसक्यूएल सर्वर प्रबंधन स्टूडियो में, एक इंटरैक्टिव कनेक्शन तालिका बंद कर दिया की आवश्यकता है कि में इस TSQL स्क्रिप्ट (जो भी आप सूट करने के लिए सेट टाइमआउट)

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 
GO 

BEGIN TRANSACTION 

UPDATE table 
SET ColumnName = ColumnName 

WAITFOR DELAY '00:02:00' -- 2 minutes hh:mm:ss 

-- Run your test while table is locked and delay is counting down 

ROLLBACK TRANSACTION 
+0

जबकि तालिका 2 मिनट के लिए बंद कर दिया जाता है, किसी भी अन्य लेनदेन 2 मिनट के लिए इंतजार करेंगे या वे त्रुटि बढ़ा देंगे rightaway? – srh

+1

निर्भर करता है कि क्या समय समाप्ति क्वेरी कि इंतज़ार कर रहा है जारी करने के संबंध/आदेश पर सेट है। –

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