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

ट्रिगर में लूपिंग?

आपकी पहली समस्या यह है कि आपको पहली पसंद के रूप में रिकॉर्ड सेट के माध्यम से लूपिंग पर विचार नहीं करना चाहिए। यह लगभग हमेशा गलत चुनाव होता है क्योंकि यह यहाँ है। आपकी अगली समस्या यह है कि ट्रिगर रिकॉर्ड्स के पूरे सेट को एक बार में नहीं प्रोसेस करता है और आपके विवरण से, मैं शर्त लगा सकता हूं कि आपने इसे यह मानते हुए लिखा था कि यह एक समय में एक रिकॉर्ड को प्रोसेस करेगा। आपको एक सेट-आधारित प्रक्रिया की आवश्यकता है।

संभवतः आपको अपने ट्रिगर में कुछ इस तरह की आवश्यकता है जो सभी देशों को सम्मिलित करेगा जो पहले से ही देश तालिका में नहीं हैं (यह मानता है कि देश_आईडी एक पूर्णांक पहचान कॉलम है):

Insert country (country_name)
select country_name 
from inserted i
where not exists 
  (select * from country c 
   where c.country_name = i.country_name)

स्टेजिंग टेबल से वास्तविक टेबल में डालने के लिए आप ट्रिगर के बजाय एक संग्रहित प्रो का भी उपयोग कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL क्वेरी टाइम आउट जब C# से चलाया जाता है, SQL सर्वर प्रबंधन स्टूडियो में तेज़ होता है

  2. SQL सर्वर में क्वेरी परिणाम में पंक्तियों की संख्या कैसे वापस करें

  3. SQL सर्वर डेटाबेस में किसी ऑब्जेक्ट (तालिका, दृश्य, संग्रहीत प्रक्रिया) की स्कीमा कैसे बदलें - SQL सर्वर / TSQL ट्यूटोरियल भाग 28

  4. जहां क्लॉज में कोई खिड़की वाला कार्य क्यों नहीं है?

  5. क्या गाइड के अद्वितीय होने की गारंटी है?