स्थानीय अस्थायी टेबल (# से शुरू) आपके सत्र तक सीमित हैं; अन्य सत्र, समान उपयोगकर्ता/कनेक्शन स्ट्रिंग से भी, उन्हें नहीं देख सकते हैं। जीवन भर के लिए नियम इस बात पर निर्भर करते हैं कि स्थानीय अस्थायी तालिका को संग्रहीत प्रक्रिया में बनाया गया था या नहीं:
- एक स्थानीय अस्थायी तालिका जो संग्रहीत कार्यविधि में बनाई जाती है, प्रक्रिया समाप्त होने पर हटा दी जाती है; अन्य संग्रहीत कार्यविधियाँ, या कॉलिंग प्रक्रिया, उन्हें नहीं देख सकती हैं।
- सत्र समाप्त होने पर अन्य स्थानीय अस्थायी तालिकाओं को हटा दिया जाता है।
वैश्विक अस्थायी तालिकाएँ (## से शुरू) सत्रों के बीच साझा की जाती हैं। उन्हें तब हटा दिया जाता है जब:
- जिस सत्र ने उन्हें बनाया वह समाप्त हो गया
- और कोई अन्य सत्र उनका जिक्र नहीं कर रहा है
यह आदेश यह देखने के लिए आसान हो सकता है कि कौन सी अस्थायी तालिकाएँ मौजूद हैं:
select TABLE_NAME from tempdb.information_schema.tables
और यदि आप सुनिश्चित नहीं हैं कि वे मौजूद हैं तो अस्थायी तालिकाओं को छोड़ना आसान है:
if object_id('tempdb..#SoTest') is not null drop table #SoTest
अधिक जानकारी के लिए यह एमएसडीएन आलेख देखें।