2011-07-10 12 views
24

मैं एक अस्थायी तालिका चर में एक मेज और डालने परिणाम पर चुनिंदा कथन का उपयोग करना चाहते हैं, लेकिन मैं कॉलम के साथ अस्थायी तालिका घोषित नहीं करते हैं और मैं इस तरह उपयोग करना चाहते हैं:तालिका घोषित किए बिना [टीएमपी टेबल] में कैसे चुनें?

Declare #tmp table; 

SELECT * INTO #tmp FROM myTable 

इस कॉलम और डेटा की घोषणा चाहते #tmp

के लिए प्रकार

कृपया मेरी मदद

+0

ध्यान दें कि तालिका में एक वास्तविक प्रति नहीं है। यदि आपके पास पहचान कॉलम है, उदाहरण के लिए, यह संपत्ति बरकरार रखी गई है, लेकिन अन्य तालिका गुण और वस्तुएं (अनुक्रमणिका, बाधाएं, ट्रिगर्स इत्यादि) की प्रतिलिपि नहीं बनाई गई है। –

उत्तर

30

आप बस की घोषणा आदेश के बिना यह कर सकते हैं - जो वैसे भी #temp तालिकाओं के लिए मान्य नहीं है, केवल @table चर।

select * 
into #tmp 
from myTable 

कोई डेटा:

select * 
into #tmp 
from myTable 
where 0=1 

BTW, आप ऐसा नहीं कर सकते

SELECT * INTO #tmp FROM myTable; 
+0

धन्यवाद हारून, लेकिन इस तरह sys टेबल –

+0

में एक टेबल बनाएं तो क्या आपका प्रश्न tempdb.sys.tables में प्रविष्टि किए बिना #temp तालिका बनाने का तरीका है? तुम क्यो फिकर करते हो? वैसे भी आप tempdb.sys.tables में एक पंक्ति उत्पन्न किए बिना #temp तालिका (या एक @table चर) नहीं बना सकते हैं, क्षमा करें। –

+0

ओह, हाँ। धन्यवाद हारून। मैं मैन्युअल रूप से ड्रॉप temp तालिका का निर्णय –

25
डेटा के साथ

: आप पहली बार #tmp को परिभाषित करने की कोशिश कर के बिना सिर्फ निम्नलिखित का प्रयास किया था तालिका चर के साथ।

select * 
into @tmp 
from myTable 

तालिका चर के साथ तालिका चर घोषित करने की आवश्यकता है।

+4

+1 खाली बनाने के संदर्भ के लिए +1 तालिका। –

+0

@Aaron - और आपको सही उत्तर के साथ पहले होने के लिए मेरे पास से एक मिला है :) –

+0

भले ही मैंने आपको केवल 3 सेकंड तक हराया? :-) –

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