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

अद्यतन पर Sql सर्वर वर्तमान टाइमस्टैम्प सेट करता है

और अगर आपको वास्तव में टाइमस्टैम्प की आवश्यकता है - तो डालने पर एक ट्रिगर बनाएं और अपडेट करें जो कॉलम को वर्तमान टाइमस्टमैप के साथ अपडेट करता है।

CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE 
AS
  UPDATE dbo.YourTable
  SET last_changed = GETDATE()
  FROM Inserted i

एक पंक्ति को अपडेट करने के लिए (जिसे संपादित या सम्मिलित किया गया है) आपको उपयोग करना चाहिए

CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE 
AS
  UPDATE f set LastUpdate=GETDATE() 
  FROM 
  dbo.[YourTable] AS f 
  INNER JOIN inserted 
  AS i 
  ON f.rowID = i.rowID;

ये सब आपको चाहिए। GETUTCDATE() यदि आप इसे UTC में चाहते हैं (जो मुझे पसंद है)

SQL सर्वर पूरी तरह से उन पंक्तियों को जानता है जो इसे संसाधित करता है

हाँ, क्या लगता है - क्योंकि ठीक यही आप SQL सर्वर को बताते हैं:तालिका में सभी पंक्तियों को अपडेट करें।

सेट की कोई वर्तमान पंक्ति नहीं है;) यहीं से समस्या शुरू होती है।

जैसा आप चाहते हैं वैसा करने का एकमात्र तरीका शुरुआत में मेरे उत्तर में है:एक टाइमस्टैम्प। हालांकि, गलत धारणाओं के कारण, मैं एक सलाह जोड़ता हूं:SQL मूल बातें के बारे में एक पुस्तक प्राप्त करें।



  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 कथन में एकाधिक तालिकाओं से हटाना संभव है?

  2. SQL सर्वर की मूल बातें ALTER TABLE Statement

  3. पैरामीटरयुक्त गतिशील एसक्यूएल क्वेरी

  4. SQL सर्वर में अपने सत्र की ANSI_NULLS सेटिंग की जांच कैसे करें

  5. SQL में सबस्ट्रिंग कमांड:एक प्राइमर