2008-09-16 5 views
28

मैं एक सर्वर के डेटाबेस से दूसरे सर्वर के डेटाबेस में डेटा पोर्ट करना चाहता हूं। डेटाबेस दोनों एक अलग mssql 2005 सर्वर पर हैं। प्रतिकृति शायद एक विकल्प नहीं है क्योंकि गंतव्य डेटाबेस [समय अंतराल] आधार पर खरोंच से उत्पन्न होता है।क्रॉस-सर्वर एसक्यूएल

preferebly मैं

insert * 
from db1/table1 
into db2/table2 
where rule1 = true 

ऐसा नहीं है कि कनेक्शन साख में इस स्क्रिप्ट में somehwere जाना होगा स्पष्ट है की तरह कुछ करना होगा।

उत्तर

33

मुझे लगता है कि आप क्या करना चाहते हैं this msdn आलेख के अनुसार एक लिंक किया गया सर्वर बनाएं।

Select * From ServerName.DbName.SchemaName.TableName 
+0

एक थोड़ी देर हो चुकी है, लेकिन मैं केवल इस पर दोबारा गौर प्रश्न और हाँ, यह मेरे प्रश्न का उत्तर जैसा दिखता है। हालांकि अब तक मुझे एहसास हुआ कि मेरा प्रश्न उस उत्तर का सवाल होना चाहिए जो मैंने चुना था। सब कुछ जटिल हो रहा है ... –

0

क्या आप नौकरी करने के लिए डेटा ट्रांसफॉर्मेशन सर्विसेज का उपयोग कर सकते हैं? यह इस तरह की चीज करने के लिए बोल्ट-एक साथ उपकरण के सभी प्रकार प्रदान करता है।

आप माइक्रोसॉफ्ट की वेबसाइट here

+0

आप शायद जानते हैं, लघु उद्योगों एसक्यूएल सर्वर के लिए 'नए' डीटीएस 2005+ – Galwegian

1

Are एसक्यूएल सर्वर एकीकरण सेवाओं (SSIS) एक विकल्प से SQL सर्वर 2005 सुविधा पैक डाउनलोड कर सकते हैं? यदि ऐसा है, तो मैं इसका उपयोग करूंगा।

1

आप तालिकाओं की एक जोड़ी से दूसरे या बस कुछ डेटा के लिए एक सर्वर से डेटाबेस के पूरे सामग्री के हस्तांतरण होगा: आप तो एक 4 भाग ऑब्जेक्ट नाम जैसे का उपयोग कर का चयन करेंगे?

दोनों विकल्पों के लिए एसएसआईएस नौकरी करेगा विशेष रूप से यदि आप नियमित आधार पर स्थानांतरण करने की योजना बना रहे हैं।

आप बस 1 या 2 टेबल से कुछ डेटा की प्रतिलिपि और SQL प्रबंधन स्टूडियो में TSQL का उपयोग कर तो आप लिंक किए गए सर्वर का उपयोग कर सकते हैं यह करने के लिए पसंद करते हैं चाहते हैं के रूप में Pelser ने सुझाव दिया

  1. स्रोत डेटाबेस सर्वर को सेट करें किसी लिंक किए गए सर्वर
  2. के रूप में डेटा
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
1

उपयोग करने के लिए ठीक है मैं प्रतिकृति पर अपनी टिप्पणी से सहमत नहीं हैं निम्न सिंटैक्स का उपयोग करें। आप स्क्रैच से डेटाबेस बनाकर एक प्रतिकृति शुरू कर सकते हैं, और आप या तो नियंत्रित कर सकते हैं या तो अद्यतन क्लाइंट डेटाबेस को अपडेट करके या डेटाबेस को पुनर्निर्मित करके अपडेट किया जाएगा।

स्वचालित प्रतिकृति स्वचालित रूप से कुंजी और रिश्तों को प्रबंधित करके आपके काम को कम कर देगी।

मुझे लगता है कि एमएसएसएलएल सर्वर स्टूडियो के माध्यम से स्नैपशॉट प्रतिकृति शुरू करना सबसे आसान काम है, टी-एसक्यूएल संबंधित स्क्रिप्ट प्राप्त करें (यानी दोनों प्रकाशन और सब्सक्रिप्शन के लिए संबंधित टी-एसक्यूएल निर्देश), और इन स्क्रिप्ट को भाग के रूप में रिकॉर्ड करें एसक्यूएल एजेंट की नौकरियों की सूची में या प्रतिकृति फ़ोल्डर में प्रतिकृति नौकरी के रूप में नौकरी का।

1

आप लिंक किए गए सर्वर मार्ग पर जा सकते हैं।

आप केवल चयन * का उपयोग नहीं कर सकते हैं, आपको चयन में एक डालने की ज़रूरत है।

यदि आप इसके साथ अनुभव नहीं करते हैं तो मैं प्रतिकृति से बचूंगा क्योंकि इसे तोड़ना मुश्किल हो सकता है और यदि ठीक से प्रबंधित नहीं किया जाता है तो अन्य समस्याओं का सामना करना पड़ सकता है।

इसे सरल रखें यदि विशेष रूप से डेटाबेस छोटे हैं।

6

आप ओपन डेटा स्रोत का उपयोग कर सकते इस तरह:

EXEC sp_configure 'show advanced options', 1 
GO 
RECONFIGURE 
GO 

EXEC sp_configure 'Ad Hoc Distributed Queries', 1 
GO 
RECONFIGURE 
GO 


SELECT * 
FROM OPENDATASOURCE('SQLOLEDB', 
        'Data Source=<Ip Of Your Server>; 
        User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name> 

Go 
+0

कूल, यह अस्तित्व में नहीं पता था। दूसरी तरफ, http://technet.microsoft.com/en-us/library/ms179856.aspx का कहना है कि इसके लिए स्पष्ट regedits होना चाहिए। –

-1
CREATE VIEW newR1 
AS 
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName') 
+0

इसके लिए लिंक किए गए सर्वर की भी आवश्यकता होती है, इसलिए मूल रूप से यह कुछ ही साल पहले किए गए सुझाव के बाद ही एक और प्रकार की क्वेरी है। – Magier