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

SQL सर्वर में टेबल इतिहास ट्रिगर?

यदि प्रत्येक उपयोगकर्ता के पास एक खाता है, तो आप SYSTEM_USER . का उपयोग कर सकते हैं वर्तमान उपयोगकर्ता को निर्धारित करने के लिए कार्य करता है। हालांकि, यदि आपके सभी कनेक्शन प्रॉक्सी खाते के माध्यम से जाते हैं, जैसा कि अधिकांश वेब साइट सेटअप में विशिष्ट है, तो आपको उचित उपयोगकर्ता आईडी पर भरोसा करना होगा जिसे अपडेट स्टेटमेंट में पास किया जा रहा है:

CREATE TRIGGER [update_history] ON MyTable
FOR UPDATE
AS
INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'BEFORE UPDATE', inserted.userId
FROM MyTable
    Join inserted
        On inserted.id = MyTable.id

INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'AFTER UPDATE', userId
FROM inserted


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DELETE CASCADE पर जोड़ने के लिए सभी विदेशी कुंजियों को बदलने के लिए SQL स्क्रिप्ट

  2. एक कॉलम को कई कॉलम में विभाजित करें लेकिन डेटा अलग-अलग होगा SQL

  3. संग्रहीत कार्यविधि को निष्पादित करते समय, CommandType.StoreedProcedure बनाम CommandType.Text का उपयोग करने का क्या लाभ है?

  4. एक वर्चर डेटा प्रकार को डेटाटाइम डेटा प्रकार में बदलने के परिणामस्वरूप एक आउट-ऑफ-रेंज मान त्रुटि हुई

  5. अंतर जानने के लिए लिनक्स बनाम विंडोज परफॉर्मेंस टेस्ट पर एमएस एसक्यूएल सर्वर