Database
 sql >> डेटाबेस >  >> RDS >> Database

मर्ज:अलग सर्वर पर स्थित स्रोत और लक्ष्य तालिका को अद्यतन करना

MERGE स्टेटमेंट क्या है?

MERGE स्टेटमेंट का उपयोग करके, हम स्रोत तालिका में डेटा के आधार पर लक्ष्य तालिका में डेटा बदल सकते हैं। इसका उपयोग करके, हम एक ही क्वेरी ब्लॉक के भीतर लक्ष्य तालिकाओं पर INSERT, UPDATE और DELETE निष्पादित कर सकते हैं। यह कॉलम का उपयोग करके दोनों तालिकाओं में शामिल हो जाता है, दोनों तालिकाओं में प्राथमिक कुंजी की तरह आम है। कॉलम डेटा कैसे मेल खाता है, इसके आधार पर लक्ष्य तालिका के डेटा पर परिवर्तन लागू होते हैं। निम्न छवि दर्शाती है कि "MERGE" कैसे काम करता है:

MERGE का उपयोग करके, हम प्रदर्शन सुधार प्राप्त कर सकते हैं क्योंकि सभी तीन ऑपरेशन (INSERT, UPDATE, और DELETE) ) एक पास में किया जाता है। लक्ष्य तालिका में परिवर्तनों को अद्यतन करने के लिए हमें व्यक्तिगत विवरण लिखने की आवश्यकता नहीं है।

मर्ज स्टेटमेंट का उपयोग करता है SourceTable और गंतव्य योग्य। यह गंतव्य तालिका . को संशोधित करता है सोर्सटेबल . के डेटा के आधार पर . मर्ज स्टेटमेंट में परिभाषित शर्त का उपयोग करके दोनों तालिकाओं की तुलना की जाती है। यह शर्त निर्धारित करती है कि कैसे SourceTable गंतव्य तालिका से मेल खाता है। यह जॉइन कंडीशन की तरह है जो पंक्तियों से मेल खाने के लिए उपयोग की जाती है।

आम तौर पर, प्राथमिक कुंजी जैसे विशिष्ट पहचानकर्ताओं से मिलान करके मिलान किया जाना चाहिए। उदाहरण के लिए, स्रोत तालिका नया उत्पाद है और गंतव्य Productmaster है और प्राथमिक कुंजी ProductID है , तो मर्ज की स्थिति इस प्रकार होनी चाहिए:

NewProduct.ProductID=ProductMaster.ProdID

MERGE स्टेटमेंट का प्रारूप निम्नलिखित है:

सोर्स सोन का उपयोग करके लक्ष्य को मर्ज करें कंडीशनजब मैच किया गयाफिर अपडेट करेंक्वेरी जब टार्गेट से मेल नहीं खाती है तो इंसर्ट करेंक्वेरी जब सोर्स से मेल नहीं खाती है तो डिलीटक्वेरी करें

लक्ष्य तालिका पर डेटा को संशोधित करने के लिए, MERGE निम्नलिखित T-SQL खंडों का समर्थन करता है।

  1. जब मिलान किया गया
  2. जब मेल नहीं खाता [लक्ष्य द्वारा]
  3. जब मेल नहीं खाता [स्रोत के अनुसार]

“जब मिलान किया गया” खंड

इस क्लॉज का उपयोग तब किया जाएगा जब हम डेस्टिनेशन टेबल पर रिकॉर्ड्स को अपडेट या डिलीट करना चाहते हैं। यहां रिकॉर्ड को मिलान माना जाता है, जब जुड़े हुए कॉलम में डेटा समान होता है।

“जब मेल नहीं खाता [लक्ष्य द्वारा]” खंड

यदि रिकॉर्ड स्रोत तालिका में मौजूद है लेकिन लक्ष्य तालिका में नहीं है तो इस खंड का उपयोग लक्ष्य तालिका में एक नया रिकॉर्ड डालने के लिए किया जाएगा।

“जब मेल नहीं खाता [स्रोत द्वारा]” खंड

इस खंड का उपयोग तब किया जाएगा जब हम किसी स्रोत तालिका में एक रिकॉर्ड को हटाना या अपडेट करना चाहते हैं जो लक्ष्य तालिका में एक पंक्ति से मेल नहीं खाता है।

जब स्रोत और लक्ष्य एक अलग सर्वर पर हों तब MERGE का उपयोग करें

इस लेख में, मैं यह प्रदर्शित करने जा रहा हूं कि MERGE का उपयोग करके इंसर्ट, अपडेट और डिलीट ऑपरेशन कैसे करें, जब सोर्स और टारगेट टेबल अलग-अलग सर्वर में हों। उदाहरण के लिए, एक दवा कंपनी इन्वेंट्री सॉफ़्टवेयर का उपयोग करती है। एक सॉफ्टवेयर के मास्टर डेटाबेस और सॉफ्टवेयर के ट्रांजेक्शनल डेटाबेस अलग-अलग डेटाबेस सर्वर पर होते हैं। निम्नलिखित एक सेटअप है:

कंपनी ने कुछ ऑर्डर किए गए उत्पाद जोड़े हैं। मैं उत्पादों के स्टॉक को अपडेट करते समय कुछ सफाई प्रक्रियाएं करना चाहता हूं। निम्नलिखित कार्यों की सूची है जिन्हें किया जाना चाहिए।

  1. यदि कोई उत्पाद इन्वेंट्री में मौजूद है और उसी उत्पाद का ऑर्डर दिया गया था, तो अपडेट करें और फिर स्टॉक को अपडेट करें।
  2. यदि कोई उत्पाद सूची में मौजूद नहीं है और उत्पाद को स्टॉक में जोड़ने के बजाय उत्पाद जोड़ने का आदेश दिया गया है।
  3. यदि उत्पाद इन्वेंट्री में मौजूद है, लेकिन इसका ऑर्डर नहीं दिया गया है, तो उत्पाद का स्टॉक इन्वेंट्री से उत्पाद को हटाने के बाद एक वर्ष से अधिक समय तक अपडेट नहीं किया जाता है।

उपर्युक्त कार्य करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  1. ##Source_Trn_Tabl . नामक एक वैश्विक अस्थायी तालिका बनाएं इ। “TrnOrder . से डेटा पॉप्युलेट करें ” (स्रोत तालिका) OPENROWSET . का उपयोग करके ##Source_Trn_Table में डेटा को कमांड और स्टोर करें ।
  2. MstStock पर INSERT, UPDATE और DELETE कार्रवाई करें MERGE . का उपयोग करके तालिका (लक्ष्य तालिका) कीवर्ड, निम्न शर्तों के आधार पर:
    • यदि Product_ID . का मान कॉलम ##Source_Trn_Table . में मौजूद है और स्टॉक तालिका, फिर MstStock . में मौजूदा स्टॉक को अपडेट करें टेबल.
    • यदि Product_ID . का मान कॉलम ##Source_Trn_Table . में मौजूद है लेकिन MstStock . में मौजूद नहीं है तालिका, फिर एक उत्पाद को MstStock . में जोड़ें टेबल.
    • यदि Product_ID . का मान कॉलम MstStock . में मौजूद है लेकिन ##Source_Trn_Tabl . में मौजूद नहीं है ई, इसके अलावा last_stock_update_date . का कॉलम मान एक वर्ष से अधिक है, तो product_id को हटा दें MstStock . से टेबल.

निम्नलिखित प्रवाह चार्ट है:

प्रदर्शन

पहले MstStock . नाम की एक लक्ष्य तालिका बनाएं और MstProduct Product_Master . पर डेटाबेस, TTI412-VM2 . पर स्थित है सर्वर। निम्नलिखित क्वेरी निष्पादित करें:

उपयोग [उत्पाद_मास्टर]गोक्रिएट टेबल [डीबीओ]। 500) नॉट न्यूल, प्राथमिक कुंजी क्लस्टर ([आईडी] एएससी) के साथ (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON) A), SCUNITHIMARY (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON) ऑन [प्राथमिक]) ऑन [प्राथमिक] गोक्रिएट टेबल [डीबीओ] ([आईडी] [इंटर] गोक्रिएट टेबल [डीबीओ]। [एमएसटी] 1) न्यूल नहीं, [Product_ID] [varchar](5) न्यूल नहीं, [Current_Stock] [int] NULL, [Last_Stock_Update_Date] [डेटाटाइम] न्यूल, प्राथमिक कुंजी क्लस्टर ([आईडी] एएससी) के साथ (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON) ऑन [प्राथमिक], UNIQUE NONCLUSTERED ([Product_ID] ASC) के साथ (PAD_INDEX =OFF, ALLISTICS_NORE_COMPUTE_ AGE_LOCKS =ON) ON [PRIMARY]) ऑन [PRIMARY]GO

अब दोनों तालिकाओं में कुछ डेटा जोड़ें।

MstProduct . में डेटा जोड़ने के लिए निम्न क्वेरी निष्पादित करें तालिका:

सेट IDENTITY_INSERT dbo.MstProduct ONGOINSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (28, 'MED141', 'Alfimaxin')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (29, 'MED', Product_Name) 'Zylasonmuc')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (30, 'MED143', 'Rythmoxabid')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (31, 'MED144', 'Omedrozol') INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (32, 'MED145', 'Reducurzol')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (33, 'MED146', 'Losapuritriol')INSERT dbo.MstProduct (ID, Product_ID, Product_Name) VALUES (34, 'MED147', 'Pipepapren')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (35, 'MED148', 'Miraperahex')INSERT dbo.MstProduct(ID, Product_ID) , Product_Name) VALUES (36, 'MED149', 'Durachloridevant')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (37, 'MED151', 'Renachloridenide')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALU (38, 'मेड152') ', 'Ecopurimuc')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (39, 'MED153', 'Aerocarpambid')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (40, 'MED154', 'Afsitec') ') INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (41, 'MED155', 'Aprozovant')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (42, 'MED156', 'Levopafen')INSERT dbo .MstProduct(ID, Product_ID, Product_Name) VALUES (43, 'MED157', 'Medrotraxel')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (44, 'MED158', 'Doxxaliq')INSERT dbo.MstProduct(ID) , Product_ID, Product_Name) VALUES (45, 'MED159', 'Betatasine')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (46, 'MED161', 'Ciclopatex')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) ) VALUES (47, 'MED162', 'Acadipiphane')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (48, 'MED163', 'Septomapin')INSERT dbo.MstProduct(ID, Product_ID, Product_Name) VALUES (49) , 'MED164', 'Acioxenal')INSERT dbo.MstProduct(ID, Pr) oduct_ID, Product_Name) VALUES (50, 'MED165', 'Natadrolol')GOSET IDENTITY_INSERT dbo.MstProduct OFFGO

MstStock . में डेटा जोड़ने के लिए निम्न क्वेरी निष्पादित करें तालिका:

MstStock में डालें (Product_ID,Current_Stock, Last_Stock_Update_Date) मान ('MED145',15,'2018-10-14'),('MED146',20,'2018-10-13'),('MED147' ,5,'2018-09-10'),('MED150',5,'2018-08-01'),('MED158',0,'2017-10-14'),('MED159',0 ,'2017-10-14')

तालिकाओं के आउटपुट की समीक्षा करने के लिए निम्नलिखित "चुनें" प्रश्नों को निष्पादित करें।

प्रश्न:

MstProduct से Product_MasterGoSelect * का उपयोग करें

आउटपुट:

प्रश्न:

MstStock से Product_MasterGoSelect * का उपयोग करें

आउटपुट:

दूसरे, TrnOrder . नामक एक स्रोत तालिका बनाएं इन्वेंटरी_विवरण . पर डेटाबेस, TTI412-VM1 . पर स्थित है सर्वर। निम्नलिखित क्वेरी निष्पादित करें:

उपयोग [इन्वेंटरी_विवरण]गोक्रिएट टेबल [डीबीओ]। NULL, [Ordered_Date] [datetime] NULL, [Last_Ordered_Date] [datetime] NULL, PRIMARY KEY CLUSTERED ([ID] ASC) के साथ (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_LOCKS =ALLOW_ONROW_ ALLOW_ONROW_) [प्राथमिक], अद्वितीय गैर-अनुबंधित ( [उत्पाद_आईडी] एएससी) के साथ (PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =PRIMARY) ON [पूर्व> 

MstStock . में डेटा जोड़ने के लिए निम्न क्वेरी निष्पादित करें तालिका:

TrnOrder में डालें (Product_ID,Ordered_Qty,Ordered_Date, Last_Ordered_Date)मान ('MED145',10, Convert(date, getdate()),'2018-10-14'),('MED146',5,convert( दिनांक, गेटडेट ()), '2018-10-13'), ('मेड 147', 15, कन्वर्ट (तारीख, गेटडेट ()), '2018-09-10'), ('मेड 150', 200, कन्वर्ट ( date,getdate()),'2018-08-01'),('MED169',50,convert(date,getdate()),'2018-10-14'),('MED170',100, Convert( date,getdate()),'2018-10-14')

तालिका के आउटपुट की समीक्षा करने के लिए निम्नलिखित "चयन करें" क्वेरी निष्पादित करें।

प्रश्न:

TrnOrder से Inventory_DetailsGoSelect * का उपयोग करें

आउटपुट:

डेटा को पॉप्युलेट करने के लिए दूरस्थ SQL सर्वर इंस्टेंस से कनेक्ट करें

जैसा कि मैंने उल्लेख किया है, हम "टेबल जो रिमोट सर्वर पर बनाई गई है" में मानों को अपडेट करना चाहते हैं। हम निम्न विधियों का उपयोग करके दूरस्थ डेटाबेस सर्वर से डेटा तक पहुँच सकते हैं।

  1. SQL सर्वर लिंक्ड सर्वर :लिंक्ड सर्वर का उपयोग OLEDB डेटा स्रोत पर एक कमांड को निष्पादित करने के लिए किया जाता है जो दूरस्थ SQL सर्वर इंस्टेंस से जुड़ा होता है। लिंक किए गए सर्वर का उपयोग करके, आप Oracle जैसे विभिन्न डेटाबेस उत्पाद को भी क्वेरी कर सकते हैं। OLEDB स्रोतों को Microsoft Access और Excel को एक लिंक किए गए सर्वर के रूप में एक्सेस करने के लिए कॉन्फ़िगर किया जा सकता है।
  2. SQL सर्वर OPENROWSET फ़ंक्शन :OPENROWSET फ़ंक्शन का उपयोग करके, हम दूरस्थ OLEDB डेटा स्रोत पर एक एड-हॉक क्वेरी निष्पादित कर सकते हैं।

इस लेख में, हम OPENROWSET . का उपयोग करेंगे दूरस्थ तालिका के डेटा तक पहुँचने की विधि। OPENROWSET फ़ंक्शन का उपयोग करके किसी दूरस्थ सर्वर को क्वेरी करने के लिए, हमें तदर्थ वितरित क्वेरी को सक्षम करना होगा कॉन्फ़िगरेशन पैरामीटर।

"तदर्थ वितरित प्रश्न" एक उन्नत विकल्प है, इसलिए सबसे पहले हमें उन्नत विकल्प दिखाएं को सक्षम करना होगा विन्यास पैरामीटर। ऐसा करने के लिए, SQL सर्वर प्रबंधन स्टूडियो की क्वेरी विंडो में निम्न आदेश निष्पादित करें।

निष्पादन sp_configure 'उन्नत विकल्प दिखाएं',1ओवरराइडगो के साथ पुन:कॉन्फ़िगर करें

एक बार उन्नत विकल्प दिखाएं पैरामीटर सक्षम है, तदर्थ वितरित क्वेरी को सक्षम करने के लिए निम्न क्वेरी निष्पादित करें :

sp_configure 'Ad Hoc Distributed queries', 1;OVERRIDE के साथ RECONFIGURE;GO

हम रिमोट सर्वर के डेटा का उपयोग करके मर्ज ऑपरेशन करने के लिए "OPENROWSET" फ़ंक्शन का उपयोग नहीं कर सकते हैं। ऐसा करने के लिए पहले हमें दूरस्थ सर्वर से डेटा आयात करना होगा और इसे वैश्विक अस्थायी तालिका में संग्रहीत करना होगा। उसके बाद, हम लक्ष्य तालिका को अद्यतन करने के लिए वैश्विक अस्थायी तालिका में निहित डेटा का उपयोग कर सकते हैं।

जैसा कि मैंने उल्लेख किया है, सबसे पहले हमें दूरस्थ तालिका से डेटा आयात करना होगा। ऐसा करने के लिए, एक अस्थायी तालिका बनाएं और OPENROWSET फ़ंक्शन का उपयोग करके डेटा आयात करें।
निम्न क्वेरी एक वैश्विक अस्थायी तालिका बनाएगी।

 Product_MastergoCREATE तालिका का उपयोग करें ##Source_Trn_Order([ID] [int] पहचान (1,1) न्यूल नहीं, [Product_ID] [varchar](15) NOT NULL, [Ordered_Qty] [int] NULL, [Ordered_Date] [डेटाटाइम ] NULL, [Last_Ordered_Date] [डेटाटाइम] NULL)

एक बार अस्थायी तालिका बन जाने के बाद, एक स्रोत तालिका से डेटा लोड करें जो एक दूरस्थ सर्वर पर स्थित है। ऐसा करने के लिए, निम्न क्वेरी निष्पादित करें:

##Source_Trn_Order में डालें [Product_ID],[Ordered_Qty],[Ordered_Date],[Last_Ordered_Date] OPENROWSET('SQLNCLI', 'Server=TTI609-VM1;Trusted_Connection=yes;','SELECT Product_ID, Ordered_Qty_ID, Ordered_Date, Last_Ordered_Date FROM Inventory_Details.dbo.TrnOrder') AS a;

चरण 1:यदि कोई उत्पाद MstStock (लक्ष्य तालिका) और TrnOrder (स्रोत तालिका) में मौजूद है, तो MstStock में वर्तमान मात्रा को अपडेट करें

ऐसा करने के लिए, जब मिलान किया गया . का उपयोग करें खंड। क्लॉज दोनों टेबल के कॉमन कॉलम पर सोर्स और टारगेट टेबल को जोड़ता है। Product_ID MstStock . के बीच कॉलम सामान्य है और ##Source_Trn_Table, इसलिए दोनों तालिकाओं में शामिल होने के लिए इसका इस्तेमाल करें।

निम्नलिखित कोड निष्पादित करें:

 MERGE MstStock target_StockUSING ##Source_Trn_Order Source_OrderON target_Stock.Product_Id =Source_Order.Product_Id जब मिलान हो जाए तो SET target_Stock.Current_Stock =Source_Order.Ordered_Qty + target_Stock. 

4 उत्पादों के Current_Stock कॉलम का मूल्य अद्यतन किया जाना चाहिए। आउटपुट को सत्यापित करने के लिए निम्न क्वेरी निष्पादित करें:

 b.Product_ID,b.Product_Name,a.Current_Stock,a.Last_Stock_Update_Date को MstStock से a.Product_ID=b.Product_ID और a.Current_Stock>0
पर चुनें।

निम्नलिखित आउटपुट है:

चरण 2:यदि कोई उत्पाद MstStock (लक्ष्य तालिका) में मौजूद नहीं है, तो उसे MstStock (लक्ष्य तालिका) में जोड़ें

फार्मेसी स्टोर ने कुछ उत्पादों का ऑर्डर दिया था। उन उत्पादों को MstProduct तालिका में जोड़ा गया था लेकिन MstStock तालिका में नहीं जोड़ा गया था। उन उत्पादों को MstStock . में जोड़ने के लिए तालिका में, मैं WHEN NOT MATCHED [TARGET] क्लॉज का उपयोग करूंगा। क्लॉज सामान्य कॉलम का उपयोग करके स्रोत और लक्ष्य तालिका में शामिल होता है। यदि लक्ष्य तालिका में मेल खाने वाली पंक्तियाँ नहीं मिलती हैं, तो यह स्रोत तालिका से पंक्तियाँ सम्मिलित करती है।

उत्पादों को MstStock . में जोड़ने के लिए MERGE . का उपयोग करके तालिका, निम्नलिखित कोड निष्पादित करें:

मेर्ज mststock target_Stock ##source_trn_order Source_OrderON target_Stock.product_id =source_order.product_id का उपयोग करते हुए जब मिलान किया गया तो UPDATE SET target_Stock.current_stock =Source_Order.ordered_qty + target_Stock.current_stock, last_stock_update_store पर लक्ष्य नहीं मिला। last_stock_update_date) VALUES (Source_Order.product_id, Source_Order.ordered_qty, Getdate());

दो उत्पाद आईडी, MED169 और MED170, जोड़ा जाना चाहिए। आउटपुट की समीक्षा करने के लिए निम्न क्वेरी निष्पादित करें:

 b.Product_ID,b.Product_Name,a.Current_Stock,a.Last_Stock_Update_Date को MstStock से a.Product_ID=b.Product_ID और a.Current_Stock>0
पर चुनें।

निम्नलिखित आउटपुट है:

चरण 3:MstStock (लक्ष्य तालिका) से आइटम हटाएं, यदि MstStock (लक्ष्य तालिका) में वर्तमान स्टॉक शून्य है और उत्पाद ##Source_Trn_Order (स्रोत तालिका) में नहीं है

इन्वेंट्री में, कुछ उत्पाद ऐसे होते हैं जिन्हें हटाने की आवश्यकता होती है क्योंकि उन्हें एक वर्ष से ऑर्डर नहीं किया गया था। इसलिए, हमें उन्हें MstStock . से हटाना होगा तालिका और MstProducts तालिका। उन उत्पादों को MstStock . से हटाने के लिए तालिका, हम उपयोग कर सकते हैं जब मेल नहीं खाता [स्रोत]

जब मेल नहीं खाता [स्रोत] क्लॉज सामान्य कॉलम का उपयोग करके स्रोत और लक्ष्य तालिका में शामिल होता है। यदि स्रोत तालिका में मेल खाने वाली पंक्तियाँ नहीं मिलती हैं तो यह लक्ष्य तालिका से पंक्तियों को हटा देती है।

MstStock . से उत्पादों को निकालने के लिए तालिका, निम्नलिखित कोड निष्पादित करें:

मेर्ज mststock target_Stock ##source_trn_order Source_OrderON target_Stock.product_id =source_order.product_id का उपयोग करते हुए जब मिलान किया गया तो UPDATE SET target_Stock.current_stock =Source_Order.ordered_qty + target_Stock.current_stock, last_stock_update_store पर लक्ष्य नहीं मिला। last_stock_update_date) VALUES (Source_Order.product_id, Source_Order.ordered_qty, Getdate ()) जब स्रोत से मेल नहीं खाता तब हटाएं;

दो उत्पाद आईडी, MED158 और मेड159 जोड़ा जाना चाहिए। आउटपुट की समीक्षा करने के लिए निम्न क्वेरी निष्पादित करें:

 b.Product_ID,b.Product_Name,a.Current_Stock,a.Last_Stock_Update_Date को MstStock से चुनें a.Product_ID=b.Product_ID और a.Current_Stock>0

निम्नलिखित आउटपुट है:

सारांश

इस लेख में मैंने निम्नानुसार कवर किया है:

  1. MERGE कीवर्ड क्या है और यह कैसे काम करता है?
  2. स्रोत और लक्ष्य तालिका को अद्यतन करने के लिए MERGE में प्रयुक्त विभिन्न खंड।
  3. डेटाबेस अलग-अलग सर्वर पर होने पर MERGE कीवर्ड का उपयोग करके डेटा को कैसे संशोधित करें।

उपयोगी टूल:

SQL सर्वर के लिए dbForge डेटा तुलना - बड़े डेटा के साथ काम करने में सक्षम शक्तिशाली SQL तुलना उपकरण।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एपीपीEND_ONLY_STORAGE_INSERT_POINT कुंडी

  2. सिंथेटिक डेटा जनरेशन

  3. क्रिसमस उपहार वितरित करना:सांता का डेटा मॉडल

  4. JDBC और स्प्रिंग के साथ काम करना

  5. हैश क्या? हैश इंडेक्स को समझना