2010-06-06 5 views
5

में विभिन्न डेटाबेस में किसी अन्य तालिका से तालिका बनाएं, मेरे पास तालिका "ए" के साथ डेटाबेस "temp" है। मैंने नया डेटाबेस "temp2" बनाया है। मैं "temp" से तालिका "ए" को "temp2" में एक नई तालिका में कॉपी करना चाहता हूं।एसक्यूएल सर्वर 2005

CREATE TABLE B IN 'temp2' 
    AS (SELECT * FROM A IN 'temp'); 

यहाँ है त्रुटि:

संदेश 156, स्तर 15, राज्य 1, पंक्ति 2 कीवर्ड के पास गलत वाक्य रचना मैं इस बयान करने की कोशिश की, लेकिन यह कहता है कि मैं गलत वाक्यविन्यास है, यहां बयान है 'में। संदेश 156, स्तर 15, राज्य 1, रेखा 3 कीवर्ड 'आईएन' के पास गलत वाक्यविन्यास।

कोई भी जानता है कि समस्या क्या है?

अग्रिम धन्यवाद,

ग्रेग

+0

क्या होगा यदि तालिका "ए" किसी अन्य सर्वर में स्थित है ?? – Chella

उत्तर

17

मुझे लगता है कि वाक्य रचना से पहले नहीं देखा है। मैं आमतौर पर इसका उपयोग करता हूं।

SELECT * 
INTO temp2.dbo.B 
FROM temp.dbo.A 
+0

धन्यवाद, यह किया गया: डी – Greg

1

क्वेरी होना चाहिए:

SELECT * INTO temp2.dbo.b 
FROM temp.dbo.a 
+1

मैं अपने और @ मार्टिन के उत्तरों को एक-दूसरे में विकसित करता हूं :) – egrunin

+0

बस मुझे लगता है कि इसके लिए केवल एक ही सही वाक्यविन्यास है! –

4

आप सही तालिका पहचान करने के लिए सक्षम होने के लिए एसक्यूएल सर्वर के लिए तालिका नाम के लिए पर्याप्त अर्हता प्राप्त करने की जरूरत है।

नाम संरचना <server name>.<database name>.<schema>.<table> है। दोनों तालिकाओं एक ही सर्वर पर रहते हैं जैसा कि आप उस के साथ बांटना कर सकते हैं, लेकिन अभी भी बाकी की जरूरत है:

SELECT * 
INTO temp2.dbo.B 
FROM temp.dbo.A 
+0

धन्यवाद! वह चाल है :) – Greg

0

ध्यान दें कि जांच का चयन करें अभ्यस्त अनुक्रमित कॉपी। आप उन्हें भी चाहते हैं, आप स्रोत से स्क्रिप्ट उत्पन्न कर सकते हैं; लक्ष्य DB में चलाने के लिए और temp.dbo.a

0

हैं से temp2.dbo.b में में

डालने डालूँ (कॉलम) स्तंभों का चयन करें आप आप कर सकते हैं डेटा नहीं चाहते:

SELECT TOP 0 * INTO temp2.dbo.b 
FROM temp.dbo.a 
1

आप डॉन, टी डेटा चाहते हैं और केवल डेटा के बिना तालिका के shcema चाहते तो यू इस दृष्टिकोण भी उपयोग कर सकते हैं ...

SELECT * INTO temp2.dbo.b 
FROM temp.dbo.a where 1=0 
0

डेटाबेस temp से तालिका A पर राइट क्लिक करके सबसे आसान तरीका है, फिर Script Table as =>CREATE to =>New Query Editor Window पर क्लिक करें। यह स्क्रिप्ट तैयार करेगा।

फिर, निम्नलिखित 2 पंक्तियों को बदलें। और इसे नए डेटाबेस के लिए चलाएं।

USE [temp2] 

.... 

CREATE TABLE [dbo].[B] 

..... 
0

यदि आप वर्तमान डीबी से किसी अन्य डीबी में एक नई तालिका बनाना चाहते हैं, तो क्वेरी चलाएं।

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table 
)