संपादित करें: मुझे इसे पूरी तरह से दोबारा दोहराएं, क्योंकि मुझे यकीन नहीं है कि एक एक्सएमएल तरीका है जैसा कि मैं मूल रूप से वर्णन कर रहा था।डेटाबेस से डेटाबेस में संबंधपरक डेटा की प्रतिलिपि बनाना
फिर भी एक और संपादन: इसे दोहराने योग्य प्रक्रिया होने की आवश्यकता है, और इसे इस तरह से स्थापित करने में सक्षम होना चाहिए कि इसे सी # कोड में बुलाया जा सके।
डेटाबेस ए में, मेरे पास पीके और एफके से संबंधित टेबल का एक सेट है। बच्चे और पोते की मेज के साथ एक अभिभावक तालिका, मान लें।
मैं डेटाबेस ए से डेटाबेस बी पर पंक्तियों का एक सेट कॉपी करना चाहता हूं, जिसमें समान रूप से टेबल और फ़ील्ड नाम हैं। प्रत्येक तालिका के लिए, मैं डेटाबेस बी में एक ही तालिका में सम्मिलित करना चाहता हूं लेकिन मुझे वही प्राथमिक कुंजी का उपयोग करने के लिए बाध्य नहीं किया जा सकता है। प्रतिलिपि दिनचर्या को डेटाबेस बी में प्रत्येक पंक्ति के लिए नए पीके बनाना होगा, और उन्हें बच्चों की पंक्तियों में प्रचार करना होगा। मैं दूसरे शब्दों में डेटा के बीच समान संबंध रख रहा हूं, लेकिन एक ही सटीक पीके और एफके नहीं।
आप इसे कैसे हल करेंगे? मैं सुझावों के लिए खुला हूं। एसएसआईएस पूरी तरह से इनकार नहीं किया गया है, लेकिन यह मुझे नहीं देखता है जैसे यह सही काम करेगा। मैं LINQ में किसी समाधान के लिए भी खुला हूं, या टाइप किए गए डेटासेट का उपयोग कर रहा हूं, या कुछ एक्सएमएल चीज का उपयोग कर रहा हूं, या बस कुछ भी जो SQL Server 2005 और/या C# (.NET 3.5) में काम करेगा। सबसे अच्छा समाधान एसएसआईएस की आवश्यकता नहीं होगी, और बहुत सारे कोड लिखने की आवश्यकता नहीं होगी। लेकिन मैं स्वीकार करूंगा कि यह "सर्वश्रेष्ठ" समाधान मौजूद नहीं हो सकता है।
(मैं अपने आप को ऊपर इस कार्य को कर नहीं किया, न ही कमी;। यह है कि यह कैसे मुझे दिया गया)
मुझे लगता है कि यह एक बार बंद ऑपरेशन है और प्रतिकृति एक विकल्प नहीं है? – Galwegian
नहीं, इसे दोहराने योग्य होना चाहिए; दीर्घकालिक हम निर्दिष्ट करेंगे कि कौन सी चीजों की प्रतिलिपि बनाना है (उदाहरण के लिए मूल डेटाबेस में पीके द्वारा)। चूंकि हम आदेश की गारंटी नहीं दे सकते हैं, इसलिए पीके को नए डेटाबेस में बिल्कुल वैसा ही नहीं होना चाहिए। यदि यह एक अच्छा समाधान है तो प्रतिकृति प्रश्न से बाहर नहीं है। –
क्या आप गंतव्य डेटाबेस में अन्य फ़ील्ड में मूल पीके आईडी रखते हैं (या आप रख सकते हैं)? –