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

मैं SQL सर्वर पर ट्रिगर में INSERT के मानों को कैसे संपादित कर सकता हूं?

डालने के बाद ट्रिगर का उपयोग करें। inserted . से जुड़ें Tb . के लिए छद्म तालिका प्राथमिक कुंजी पर। फिर desc के मान अपडेट करें। कुछ इस तरह:(लेकिन संकलित नहीं हो सकता)

CREATE TRIGGER TbFixTb_Trg 
ON  Tb  
AFTER INSERT 
AS  
BEGIN 
    UPDATE Tb
    SET DESC = SomeTransformationOf(i.DESC)
    FROM Tb
    INNER JOIN inserted i on i.Id = Tb.Id
END  
GO

यह ट्रिगर इंसर्ट होने के बाद होता है, लेकिन insert . से पहले होता है बयान पूरा करता है। तो नए, गलत मान पहले से ही लक्ष्य तालिका में रखे गए हैं। इस ट्रिगर को बदलने की आवश्यकता नहीं होगी क्योंकि कॉलम जोड़े जाते हैं, हटाए जाते हैं, आदि।

चेतावनी ट्रिगर आग के बाद से पहले अखंडता बाधाओं को लागू किया जाता है। तो आप डीईएससी के उचित रूप को लागू करने के लिए चेक बाधा नहीं डाल सकते हैं। क्योंकि इससे ट्रिगर से पहले कुछ भी ठीक करने का मौका होने से पहले कथन विफल हो जाएगा। (कृपया इस पर भरोसा करने से पहले इस अनुच्छेद को दोबारा जांचें। मुझे एक ट्रिगर लिखे हुए कुछ समय हो गया है।)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप एक बड़ी MS SQL .sql फ़ाइल कैसे आयात करते हैं?

  2. बीसीपी उपयोगिता और एसक्यूएल सर्वर 2008 का उपयोग करके कॉलम हेडर (कॉलम नाम) के साथ फाइल करने के लिए निर्यात तालिका

  3. SQL सर्वर में स्ट्रिंग और नल मानों को कैसे संयोजित करें

  4. टी-एसक्यूएल (एसक्यूएल सर्वर) में डुप्लिकेट कुंजी त्रुटि को कैसे अनदेखा करें

  5. एसक्यूएल सर्वर (टी-एसक्यूएल) में संयोजन कैसे खोजें