DECLARE @local_variable CURSOR
. का उपयोग करने का एक और फायदा है सिंटैक्स जिसे मैंने अभी खोजा है।
लाभ तब होता है जब एक संग्रहीत प्रक्रिया दूसरे को कॉल करती है, और दोनों प्रक्रियाओं में एक ही समय में कर्सर खुले होते हैं। अगर DECLARE cursor_name CURSOR
कर्सर को परिभाषित करने के लिए उपयोग किया जाता है, और दोनों प्रक्रियाएं एक ही कर्सर_नाम का उपयोग करती हैं, तो आपको मिलता है
दूसरी ओर, यदि DECLARE @local_variable CURSOR
माता-पिता और बच्चे की संग्रहीत प्रक्रियाओं में कर्सर को परिभाषित करने के लिए प्रयोग किया जाता है, फिर @local_variable
प्रत्येक प्रक्रिया के लिए स्थानीय है और कोई विरोध नहीं है। उन लोगों के लिए जिन्होंने पहले इस पद्धति का उपयोग नहीं किया है, यहां @C
. का उपयोग करके एक उदाहरण दिया गया है स्थानीय चर के रूप में:
DECLARE @C AS CURSOR;
SET @C = CURSOR FOR SELECT ...;
OPEN @C;
FETCH NEXT FROM @C INTO ...;
...