जब आप SQL सर्वर में एक अस्थायी तालिका बनाते हैं, तो आपके पास इसे स्थानीय या वैश्विक अस्थायी तालिका बनाने का विकल्प होता है।
यहां स्थानीय अस्थायी तालिकाओं और वैश्विक अस्थायी तालिकाओं के बीच मुख्य अंतरों की एक त्वरित रूपरेखा दी गई है।
नामकरण
- स्थानीय अस्थायी तालिकाओं के नाम एकल संख्या चिह्न से शुरू होते हैं (
#
) उदाहरण के लिए,#MyTable
. - स्थानीय अस्थायी तालिकाओं को नाम के साथ जोड़ा गया एक सिस्टम जनित संख्यात्मक प्रत्यय भी मिलता है। यह स्वचालित रूप से SQL सर्वर द्वारा उत्पन्न होता है। यह एक से अधिक सत्रों को नामकरण विरोध पैदा किए बिना एक ही नाम के साथ स्थानीय अस्थायी तालिकाएँ बनाने की अनुमति देता है। हालांकि, उपयोगकर्ता अभी भी प्रत्यय को जाने बिना तालिका को क्वेरी कर सकते हैं।
- वैश्विक अस्थायी तालिकाओं के नाम दोहरे अंक चिह्न से शुरू होते हैं (
##
) उदाहरण के लिए,##MyTable
। - वैश्विक अस्थायी तालिकाएं नहीं हैं स्थानीय अस्थायी तालिकाओं जैसे प्रत्यय के साथ जोड़ा गया।
दृश्यता
- स्थानीय अस्थायी तालिकाएं केवल वर्तमान सत्र में दिखाई देती हैं।
- वैश्विक अस्थायी तालिकाएं सभी सत्रों के लिए दृश्यमान हैं।
जीवन काल
- वर्तमान सत्र के अंत में स्थानीय अस्थायी तालिकाओं को स्वचालित रूप से हटा दिया जाता है। संग्रहीत कार्यविधि समाप्त होने पर संग्रहीत कार्यविधि में बनाई गई स्थानीय अस्थायी तालिका स्वचालित रूप से हटा दी जाती है। तालिका को तालिका बनाने वाली संग्रहीत कार्यविधि द्वारा निष्पादित किसी भी नेस्टेड संग्रहीत कार्यविधियों द्वारा संदर्भित किया जा सकता है। तालिका को उस प्रक्रिया द्वारा संदर्भित नहीं किया जा सकता है जिसे तालिका बनाने वाली संग्रहीत कार्यविधि कहा जाता है।
- वैश्विक अस्थायी तालिकाओं को स्वचालित रूप से हटा दिया जाता है जब तालिका बनाने वाला सत्र समाप्त हो जाता है और अन्य सभी कार्यों ने उन्हें संदर्भित करना बंद कर दिया है। एक कार्य और एक तालिका के बीच संबंध केवल एक टी-एसक्यूएल कथन के जीवन के लिए बनाए रखा जाता है। इसलिए, अंतिम टी-एसक्यूएल स्टेटमेंट के पूरा होने पर एक वैश्विक अस्थायी तालिका गिरा दी जाती है जो निर्माण सत्र समाप्त होने पर सक्रिय रूप से तालिका को संदर्भित कर रहा था।