2012-02-15 16 views
5

मैं कुछ साल पहले मूल एसक्यूएल के साथ काम कर रहा हूं। हालांकि, हाल ही में मुझे "साथ" कमांड का सामना करना पड़ता है। मेरे शोध से, ऐसा लगता है कि "साथ" एक अस्थायी तालिका बनाने का एक तरीका है। लेकिन मेरे अनुभव में, आप एक temp तालिका बनाने के लिए हैश "#" का भी उपयोग कर सकते हैं।टी-एसक्यूएल अस्थायी डेटा तुलना # बनाम

मैंने "साथ" और "#" खोजने की कोशिश की, लेकिन चूंकि ये अजीब खोज शब्द हैं, मुझे बहुत अधिक परिणाम नहीं मिल रहे हैं।

क्या कोई मुझे इस बारे में चिंतित कर सकता है कि प्रत्येक के लिए पेशेवर और विपक्ष जैसे अंतर क्या हैं?

उत्तर

4

आप सामान्य तालिका अभिव्यक्ति (सीटीई) बनाने के लिए WITH का उपयोग करते हैं। यह तकनीकी रूप से एक अस्थायी तालिका नहीं है।

एक temp तालिका किसी अन्य तालिका की तरह है, लेकिन यह tempdb में संग्रहीत है और कनेक्शन बंद होने पर गिरा दिया गया है।

एक temp तालिका के विपरीत, हालांकि, एक सीटीई वास्तव में इसके लिए एक भौतिक स्टोर नहीं है। यह एक "दृश्य" की तरह है।

Here is a great article on exactly what CTEs are। और अस्थायी टेबल, कि कनेक्शन के लिए जारी रहती है के विपरीत, एक CTE है:

एक एकल का चयन करें, सम्मिलित करें, अद्यतन, हटाने या बनाने देखें बयान

MSDN Reference on Using Common Table Expressions

के निष्पादन के दायरे के भीतर परिभाषित
0

WITH ऑन-द-फ्लाई (मेमोरी में) बनाई गई एक तालिका है, इसलिए यह किसी अन्य तालिका की तरह एक अस्थायी (#) तालिका की तुलना में काफी तेज है, लेकिन जब आप कनेक्शन बंद करते हैं तो यह स्वचालित रूप से गिरा दिया जाता है। कॉन यह है कि यह केवल एक बयान के लिए जीवित है

संबंधित मुद्दे