2011-11-27 17 views
16

मैंने अभी अपनी मशीन पर एक खाली डेटाबेस बनाया है। अब मैं अपने सर्वर डेटाबेस से इस स्थानीय डेटाबेस में एक टेबल कॉपी करना चाहता हूं।एक डेटाबेस से दूसरे डेटाबेस में कॉपी करें

ऐसा करने के लिए मुझे किस SQL ​​आदेशों को चलाने की आवश्यकता है? मैं नई टेबल बनाना चाहता हूं, पुरानी तालिका से डेटा कॉपी करना और इसे नई तालिका में डालना चाहता हूं।

+1

आप किसी SQL सम्मिलित स्क्रिप्ट बना सकते हैं। Http://stackoverflow.com/questions/7515110/create-sql-insert-script-with-values-gathered-from-table – mhenry1384

उत्तर

24

Create a linked server स्रोत सर्वर से। प्रबंधन स्टूडियो में "लिंक किए गए सर्वर" पर राइट क्लिक करना सबसे आसान तरीका है; यह प्रबंधन के तहत है -> सर्वर ऑब्जेक्ट्स।

तो फिर तुम एक 4 भाग नाम, server.database.schema.table का उपयोग कर तालिका कॉपी कर सकते हैं:

select * 
into DbName.dbo.NewTable 
from LinkedServer.DbName.dbo.OldTable 

यह दोनों मूल एक के रूप में एक ही संरचना के साथ नई तालिका बना सकते हैं और अधिक डेटा की प्रतिलिपि होगा।

+2

+1 केवल यह ध्यान में रखते हुए जवाब दें कि वे डेटाबेस ** अलग ** सर्वर पर हैं! –

+0

काम नहीं करेगा यदि आप SQL Server 2000 और 2012+ https://connect.microsoft.com/SQLServer/feedback/details/731869/using-sqlncli10-to-create-a-linked-server-to- एसक्यूएल-सर्वर -2000-कारण-ए-गलती – sojim2

+0

SQL सर्वर 2000 और 2012+ के लिए समाधान (उच्चतम वोट के साथ उत्तर, चिह्नित उत्तर नहीं): http://stackoverflow.com/questions/187770/copy-tables- एक-डेटाबेस-से-दूसरे-इन-एसक्यूएल-सर्वर – sojim2

6

का चयन करें ... जांच:

select * into <destination table> from <source table> 
6

यह मानते हुए कि वे एक ही सर्वर में हैं, इस प्रयास करें:

SELECT * 
INTO SecondDB.TableName 
FROM FirstDatabase.TableName 

यह एक नया टेबल बना सकते हैं और सिर्फ SecondDB.TableName करने के लिए FirstDatabase.TableName से डेटा कॉपी और विदेशी कुंजी या अनुक्रमित नहीं बनाएगा।

1

ऐसा करने के लिए RazorSQL या Toad जैसे टूल का उपयोग करने का सबसे तेज़ तरीका है।

2

मान लें कि आप टेबल के लिए अलग-अलग नाम चाहते हैं।

यदि आप PHPmyadmin का उपयोग कर रहे हैं तो आप मेनू में अपने SQL विकल्प का उपयोग कर सकते हैं। फिर आप बस पहली तालिका से एसक्यूएल कोड कॉपी करते हैं और इसे नई तालिका में पेस्ट करते हैं।

जब मैं स्थानीयहोस्ट से वेबहोस्ट में जा रहा था, तो यह मेरे लिए काम करता था। आशा है कि यह आपके लिए काम करता है!

+0

बहुत बड़ी टेबल के लिए जिनके एसक्यूएल कोड कॉपी और पेस्ट करने के लिए दर्द होंगे, PHPmyadmin ** ** आयात ** और ** निर्यात ** मेनू आसानी से उपयोग किया जा सकता है कुंआ। – tmnol

3
INSERT INTO ProductPurchaseOrderItems_bkp 
     (
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
    ) 
SELECT 
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
FROM ProductPurchaseOrderItems 
    WHERE OrderId=415 
1

आप पूरे तालिका संरचना (न सिर्फ बुनियादी डेटा लेआउट) की जरूरत है, Task>Script Table As>Create To>New Query Window का उपयोग करें और अपने नए डेटाबेस में चलाते हैं। फिर आप अपने अवकाश पर डेटा कॉपी कर सकते हैं।

4

यदि दो डेटाबेस के बीच लगातार माइग्रेट करना है, तो पहले से मौजूद तालिका संरचना में सम्मिलित होना एक संभावना है। यदि ऐसा है तो:

निम्न सिंटैक्स का उपयोग करें:

insert into DESTINATION_DB.dbo.destination_table 
select * 
    from SOURCE_DB.dbo.source_table 
[where x ...] 

तो टेबल (या विदेशी कुंजी बाधाओं के साथ टेबल) के एक बहुत मैं सलाह देते हैं पलायन: साथ

  • जनरेट कर रहा है स्क्रिप्ट उन्नत विकल्प/स्क्रिप्ट के लिए डेटा के प्रकार: डेटा केवल या
  • रिज़ॉर्ट किसी तृतीय पक्ष टूल का उपयोग कर रिज़ॉर्ट।

उम्मीद है कि यह मदद करता है!

7

स्रोत डेटाबेस से टेबल पर प्रतिलिपि बनाने के लिए उपयोग की जा सकने वाली एक अन्य विधि SQL सर्वर निर्यात और आयात विज़ार्ड है, जो SQL सर्वर प्रबंधन स्टूडियो में उपलब्ध है।

आपके पास डेटा स्थानांतरित करने के लिए स्रोत डेटाबेस से निर्यात करने या गंतव्य से आयात करने का विकल्प होता है।

यह विधि स्रोत डेटाबेस से टेबल डेटाबेस को प्रतिलिपि बनाने का एक त्वरित तरीका है, यदि आप तालिकाओं के रिश्तों और आदेशों से कोई चिंता न करने वाले टेबल कॉपी करने की व्यवस्था करते हैं।

इस विधि का उपयोग करते समय, टेबल 'इंडेक्स और कुंजी स्थानांतरित नहीं किए जाएंगे। यदि आप इसे कॉपी करने में रुचि रखते हैं, तो आपको इन डेटाबेस ऑब्जेक्ट्स के लिए स्क्रिप्ट उत्पन्न करने की आवश्यकता है।

यदि ये विदेशी कुंजी हैं, तो इन तालिकाओं को एक साथ जोड़कर, आपको डेटा को सही क्रम में निर्यात करने की आवश्यकता है, अन्यथा निर्यात विज़ार्ड विफल हो जाएगा।

इस विधि के बारे में अधिक पढ़ने के लिए नि: शुल्क है, साथ ही कुछ और तरीकों इस लेख में (स्क्रिप्ट उत्पन्न करते हैं, जांच और तीसरे पक्ष के उपकरणों का चयन कर सहित) के बारे में महसूस: https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

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

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