जैसा कि आपने खोजा है SQL सर्वर और Oracle अस्थायी तालिकाएँ मौलिक रूप से भिन्न हैं।
Oracle में वैश्विक अस्थायी तालिकाएं स्थायी वस्तुएं होती हैं जो अस्थायी सत्र विशिष्ट (या लेनदेन विशिष्ट) डेटा संग्रहीत करती हैं।
SQL सर्वर में अस्थायी तालिकाएँ अस्थायी डेटा संग्रहीत करने वाली अस्थायी वस्तुएँ हैं, जिसमें #temp_tables एक सत्र के लिए स्थानीय डेटा संग्रहीत करता है और ##temp_tables डेटा संग्रहीत करता है जो वैश्विक है। (मुझे SQL सर्वर वैश्विक अस्थायी तालिकाओं की कभी आवश्यकता नहीं पड़ी है और यह नहीं पता कि वे किस समस्या का समाधान करते हैं।) यदि #temp_table एक संग्रहीत कार्यविधि में बनाया गया था, तो संग्रहीत कार्यविधि के बाहर निकलने पर इसे हटा दिया जाएगा। अन्यथा सत्र समाप्त होने पर इसे हटा दिया जाएगा।
और नहीं, वास्तव में SQL सर्वर को Oracle की नकल करने का कोई तरीका नहीं है। आप सत्र आईडी को संग्रहीत करने वाले अतिरिक्त कॉलम के साथ एक सामान्य तालिका का उपयोग कर सकते हैं। लेकिन आपको कम लॉगिंग के संबंध में अस्थायी तालिकाओं का लाभ नहीं मिलेगा। आपको अस्थायी डेटा को मैन्युअल रूप से हटाना होगा। और समय से पहले बंद होने वाले सत्रों की सफाई से निपटें।
संपादित करें: Oracle और SQL सर्वर के बीच एक और अंतर यह है कि SQL सर्वर DDL को अन्य कथनों के साथ लेन-देन में लपेटने की अनुमति देता है। इसलिए यदि आपको बड़े लेन-देन के हिस्से के रूप में एक अस्थायी तालिका का उपयोग करने की आवश्यकता है, तो create table #table_name...
बनाएं स्टेटमेंट परोक्ष रूप से create table
की तरह वर्तमान लेनदेन को प्रतिबद्ध नहीं करेगा कथन Oracle में होगा।