मैं अपनी क्वेरी में मेरिज का उपयोग कर रहा हूं और मैं उस खंड पर INSERT बना रहा हूं जब उसे तब तक नहीं मिला, लेकिन फिर मैं सम्मिलित पंक्ति पहचान प्राप्त करना चाहता हूं और कुछ अन्य इंसर्ट कर सकता हूं अन्य टेबल अब के लिए क्वेरी है:एसक्यूएल सर्वर एकाधिक प्रविष्टियों के साथ विलय करता है जब
ALTER PROCEDURE [dbo].[BulkMergeOffers]
@data ImportDataType READONLY
AS
SET NOCOUNT ON;
DECLARE @cid int = 0
MERGE dbo.oferta AS target
USING @data AS source
ON (target.nr_oferty = source.nr_oferty)
WHEN NOT MATCHED THEN
INSERT (nr_oferty,rynek,typ_transakcji, typ_nieruchomosci,cena,powierzchnia, rok_budowy, wojewodztwo, miasto, dzielnica, ulica, opis, wspolrzedne, film, zrodlo, KontaktStore, data, forma_wlasnosci, stan_techniczny, liczba_pokoi, liczba_peter, pietro, material, kuchnia, pow_dzialki, typ_dzialki, woda,gaz, prad,sila, przeznaczenie,lokal_dane)
VALUES (source.nr_oferty,source.rynek,source.typ_transakcji, source.typ_nieruchomosci,source.cena,source.powierzchnia, source.rok_budowy, source.wojewodztwo, miasto, source.dzielnica, source.ulica, source.opis, source.wspolrzedne, source.film, source.zrodlo, source.KontaktStore, source.data, source.forma_wlasnosci, source.stan_techniczny, source.liczba_pokoi, source.liczba_peter, source.pietro, source.material, source.kuchnia, source.pow_dzialki, source.typ_dzialki, source.woda,source.gaz, source.prad,source.sila, source.przeznaczenie,source.lokal_dane);
तो जैसा कि आप देख मैं स्रोत डेटा के आधार पर लक्ष्य तालिका के लिए कुछ मूल्यों डालने की आवश्यकता है, तो मैं डालने पहचान लेते हैं और एक और तालिका में डालने के लिए की जरूरत है, लेकिन यह भी कुछ के आधार पर स्रोत डेटा है, तो ऐसा ही कुछ, सिर्फ पहली डालने के बाद:
:SET @cid = SCOPE_IDENTITY(); if source.photo is not null begin insert into dbo.photos(offerID, file) values (@cid, source.photo); end
लेकिन मैं इसे इकट्ठा नहीं कर सकते, एक स्रोत तक पहुंच नहीं कोई और अधिक, यह भी अगर बयान शो त्रुटि है
"बहु-भाग पहचानकर्ता source.photo को बाध्य नहीं किया जा सकता "
लेकिन यह वहां है। केवल स्पष्टता के लिए ImportDataType एक तालिका-मूल्यवान पैरामीटर है।
मदद कृपया
जब अद्यतन करने के लिए भी मिलान, बस नमूना स्पष्ट करने के लिए यह छीन मैं उपयोग कर रहा हूँ, मेरा बुरा:
मैं अपने उदाहरण का विस्तार किया है। लेकिन आपका नमूना दिलचस्प है, मैं इसका विश्लेषण करने और अपनी जरूरतों को समायोजित करने की कोशिश करूंगा, यह एक अच्छा संदर्भ है। – Programista
मैं वास्तव में एक अच्छी सलाह थी, thx, मैं इसे काम करने में कामयाब रहा है। – Programista
ध्यान दें कि यदि आप स्रोत रिकॉर्ड से डेटा आउटपुट करने की आवश्यकता है तो 'MERGE' अभी भी उपयोगी है। 'मेर्ज' 'आउटपुट 'कथन सम्मिलित डेटा और स्रोत डेटा दोनों को वापस कर सकता है, जबकि' INSERT' कथन केवल सम्मिलित पंक्ति से मान वापस कर सकता है। –