आपकी पहली समस्या यह है कि आपको पहली पसंद के रूप में रिकॉर्ड सेट के माध्यम से लूपिंग पर विचार नहीं करना चाहिए। यह लगभग हमेशा गलत चुनाव होता है क्योंकि यह यहाँ है। आपकी अगली समस्या यह है कि ट्रिगर रिकॉर्ड्स के पूरे सेट को एक बार में नहीं प्रोसेस करता है और आपके विवरण से, मैं शर्त लगा सकता हूं कि आपने इसे यह मानते हुए लिखा था कि यह एक समय में एक रिकॉर्ड को प्रोसेस करेगा। आपको एक सेट-आधारित प्रक्रिया की आवश्यकता है।
संभवतः आपको अपने ट्रिगर में कुछ इस तरह की आवश्यकता है जो सभी देशों को सम्मिलित करेगा जो पहले से ही देश तालिका में नहीं हैं (यह मानता है कि देश_आईडी एक पूर्णांक पहचान कॉलम है):
Insert country (country_name)
select country_name
from inserted i
where not exists
(select * from country c
where c.country_name = i.country_name)
स्टेजिंग टेबल से वास्तविक टेबल में डालने के लिए आप ट्रिगर के बजाय एक संग्रहित प्रो का भी उपयोग कर सकते हैं।