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

तालिका में सम्मिलित करें (आदि) के दौरान प्रत्येक सम्मिलित पंक्ति पर आग लगाने के लिए मैं ट्रिगर कैसे प्राप्त कर सकता हूं * तालिका 2 से चुनें?

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

तो, कल्पना कीजिए कि आपके पास इस तरह एक सम्मिलित ट्रिगर है, जो table . में डाली गई सभी पंक्तियों को लॉग करता है

create trigger trgInsertTable 
on dbo.table
for insert
as
   insert tableLog(name)
    select name from inserted

इस ट्रिगर के साथ, जब आप table . पर बल्क इंसर्ट करते हैं , tableLog table . में डाली गई पंक्तियों की समान संख्या से भरा है

आपके लिए विशिष्ट ट्रिगर, चूंकि आपको प्रत्येक पंक्ति के लिए एक संग्रहीत कार्यविधि को कॉल करने की आवश्यकता है, आपको एक कर्सर का उपयोग करने की आवश्यकता है:

ALTER TRIGGER dbo.Notify
    ON  dbo.Table
    AFTER INSERT
AS 
BEGIN

    DECLARE @EmailSender varchar(50)='Sender Profile'
    DECLARE @User varchar(20)
    DECLARE @Subject varchar(50)

    DECLARE cursor CURSOR FOR
      SELECT User, '(' + CONVERT(varchar, Id) + ')!'
        FROM inserted

    OPEN cursor
    FETCH NEXT FROM cursor INTO @User, @Subject
    WHILE @@FETCH_STATUS = 0
    BEGIN
      exec msdb.dbo.sp_send_dbmail
          @[email protected],
          @[email protected]
          @[email protected],
          @body='//etc'
      FETCH NEXT FROM cursor INTO @User, @Subject
    END
    CLOSE cursor
    DEALLOCATE cursor

END

मैंने परीक्षण नहीं किया, लेकिन काम करना चाहिए



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल में दो अपडेट स्टेटमेंट अलग कैसे हैं?

  2. मैं OLE DB स्रोत घटक में संग्रहीत कार्यविधि पैरामीटर के लिए मान कैसे पास करूं?

  3. टी-एसक्यूएल के साथ एमडी 5 हैश स्ट्रिंग जेनरेट करें

  4. संग्रहीत प्रक्रिया स्पष्टीकरण के बिना प्रतीत होती है लटकती है

  5. SQL सर्वर में अद्वितीय बाधा क्या है - SQL सर्वर / TSQL ट्यूटोरियल भाग 95