Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

अस्थायी टेबल स्कोप?

सबसे पहले, एक प्रक्रिया के भीतर बनाई गई स्थानीय अस्थायी तालिकाएँ प्रक्रिया समाप्त होने के बाद हटा दी जाती हैं। BOL ऑन क्रिएट टेबल से :

यदि आपका डेटा एक्सेस कोड कनेक्शन को ठीक से खोल रहा है, संग्रहीत प्रक्रिया को कॉल कर रहा है और फिर कनेक्शन बंद कर रहा है, तो प्रक्रिया में अस्थायी तालिका प्रभावी रूप से नष्ट हो जाती है।

मैं एक और बिंदु लाने के लिए "प्रभावी रूप से" कहता हूं। मैं आपकी प्रक्रिया के अंत में अस्थायी तालिका को छोड़ने की अनुशंसा नहीं करता, हालांकि मैं अस्थायी तालिका बनाने से ठीक पहले एक चेक जोड़ूंगा और मौजूद होने पर इसे छोड़ दूंगा (उदाहरण के लिए if object_id('tempdb..#Foo') is not null ) अंत में अस्थायी तालिका को छोड़ने के खिलाफ तर्क यह है कि ड्रॉप स्टेटमेंट को कॉल करके, आप SQL सर्वर को अपनी प्रक्रिया समाप्त होने की प्रतीक्षा करते समय तालिका को नष्ट करने के लिए संसाधनों को खर्च करने के लिए मजबूर कर रहे हैं। यदि इसके बजाय, आप इसे दायरे से बाहर जाने देते हैं, तो आपकी प्रक्रिया तुरंत समाप्त हो जाती है और आप SQL सर्वर को अपने स्वयं के चयन के समय तालिका को नष्ट करने देते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर क्वेरी - समूहवार गुणन

  2. SQL सर्वर में किसी स्ट्रिंग की सभी घटनाओं को किसी अन्य स्ट्रिंग से कैसे बदलें - REPLACE ()

  3. चयन कथनों में NOLOCK संकेत का प्रभाव

  4. ट्रिगर के साथ डेटाबेस तालिका में परिवर्तन लॉग करें

  5. ऑडिट तालिका में SQL सर्वर में रिकॉर्ड परिवर्तन लॉग करें