Microsoft SQL Server
ले जाएँ और तालिकाओं के आसपास डेटा की प्रतिलिपि बनाएँ
खोज…
एक तालिका से दूसरी तालिका में डेटा की प्रतिलिपि बनाएँ
यह कोड किसी तालिका से डेटा का चयन करता है और इसे क्वेरी टूल (आमतौर पर SSMS) में प्रदर्शित करता है
SELECT Column1, Column2, Column3 FROM MySourceTable;
यह कोड उस डेटा को एक तालिका में सम्मिलित करता है:
INSERT INTO MyTargetTable (Column1, Column2, Column3)
SELECT Column1, Column2, Column3 FROM MySourceTable;
किसी तालिका में डेटा की प्रतिलिपि बनाएँ, जिससे उस तालिका को मक्खी पर बनाया जा सके
यह कोड किसी तालिका से डेटा का चयन करता है:
SELECT Column1, Column2, Column3 FROM MySourceTable;
यह कोड MyNewTable
नामक एक नई तालिका बनाता है और उस डेटा को इसमें डाल देता है
SELECT Column1, Column2, Column3
INTO MyNewTable
FROM MySourceTable;
तालिका में डेटा ले जाएं (अद्वितीय कुंजी विधि मानकर)
डेटा को स्थानांतरित करने के लिए आप पहले इसे लक्ष्य में सम्मिलित करते हैं, फिर जो भी आप स्रोत तालिका से सम्मिलित करते हैं उसे हटा दें। यह एक सामान्य SQL ऑपरेशन नहीं है, लेकिन यह ज्ञानवर्धक हो सकता है
आपने क्या डाला? आम तौर पर डेटाबेस में आपको एक या एक से अधिक कॉलम रखने की आवश्यकता होती है जिसका उपयोग आप पंक्तियों को विशिष्ट रूप से पहचानने के लिए कर सकते हैं ताकि हम यह मान लें और इसका उपयोग करें।
यह कथन कुछ पंक्तियों का चयन करता है
SELECT Key1, Key2, Column3, Column4 FROM MyTable;
पहले हम इन्हें अपने लक्ष्य तालिका में सम्मिलित करते हैं:
INSERT INTO TargetTable (Key1, Key2, Column3, Column4)
SELECT Key1, Key2, Column3, Column4 FROM MyTable;
अब यह सोचते हैं दोनों तालिकाओं में रिकॉर्ड पर अद्वितीय हैं Key1
, Key2
, हम उपयोग कर सकते हैं कि स्रोत तालिका से बाहर हटाने डेटा खोजने के लिए और करने के लिए
DELETE MyTable
WHERE EXISTS (
SELECT * FROM TargetTable
WHERE TargetTable.Key1 = SourceTable.Key1
AND TargetTable.Key2 = SourceTable.Key2
);
यह केवल सही ढंग से काम करेंगे, तो Key1
, Key2
दोनों तालिकाओं में अद्वितीय हैं
अंत में, हम नहीं चाहते कि काम आधा हो जाए। यदि हम इसे एक लेनदेन में लपेटते हैं तो या तो सभी डेटा स्थानांतरित हो जाएंगे, या कुछ भी नहीं होगा। यह सुनिश्चित करता है कि हम उस डेटा को सम्मिलित न करें और स्रोत से डेटा को हटाने में स्वयं को असमर्थ पाएं।
BEGIN TRAN;
INSERT INTO TargetTable (Key1, Key2, Column3, Column4)
SELECT Key1, Key2, Column3, Column4 FROM MyTable;
DELETE MyTable
WHERE EXISTS (
SELECT * FROM TargetTable
WHERE TargetTable.Key1 = SourceTable.Key1
AND TargetTable.Key2 = SourceTable.Key2
);
COMMIT TRAN;