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

ट्रिगर पुराने मान डालें- वे मान जो अपडेट किए गए थे

आपके ट्रिगर में, आपके पास दो छद्म-सारणी उपलब्ध हैं, Inserted और Deleted , जिसमें वे मान होते हैं।

अद्यतन के मामले में, Deleted तालिका में पुराने मान होंगे, जबकि Inserted तालिका में नए मान हैं।

तो अगर आप ID, OldValue, NewValue . को लॉग करना चाहते हैं अपने ट्रिगर में, आपको कुछ इस तरह लिखना होगा:

CREATE TRIGGER trgEmployeeUpdate
ON dbo.Employees AFTER UPDATE
AS 
   INSERT INTO dbo.LogTable(ID, OldValue, NewValue)
      SELECT i.ID, d.Name, i.Name
      FROM Inserted i
      INNER JOIN Deleted d ON i.ID = d.ID

मूल रूप से, आप Inserted . में शामिल होते हैं और Deleted छद्म-तालिकाओं, आईडी को पकड़ो (जो समान है, मुझे लगता है, दोनों मामलों में), Deleted से पुराना मान तालिका, Inserted . से नया मान तालिका, और आप सब कुछ LogTable . में संग्रहीत करते हैं



  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. SQL सर्वर में दशमलव से अनुगामी शून्य निकालें

  3. क्या संग्रहित प्रक्रियाएं टेबल/पंक्तियों को लॉक करती हैं?

  4. SQL सर्वर 2008- तालिका की कमी प्राप्त करें

  5. SQL में एकाधिक वर्ण बदलें