2010-12-02 8 views
5

क्या SQL सर्वर को स्वचालित रूप से बताने का कोई तरीका है कि सभी तालिकाओं को सम्मिलित करने और अपडेट करने के लिए टाइमस्टैम्प होना चाहिए?SQL सर्वर में स्वचालित रूप से कोई पंक्ति बनाई/अपडेट होने पर ट्रैक कैसे करें?

शायद यह करने के लिए बहुत बार दोहराया जाने वाला काम है?

या लेनदेन लॉग के साथ ऐसा करने का एक और अधिक प्रभावी तरीका है?

कार्ल

उत्तर

3

AutoAudit

पर एक नज़र डालें और उन स्तंभों को प्रबंधित करने के साथ-साथ ऑडिट ट्रेल तालिका

मुझे यह बहुत उपयोगी पाया गया है

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

+0

मेरे सबसे ज्वलंत सपनों की तरह दिखता है! – Malartre

2

आप एसक्यूएल सर्वर में DML triggers के साथ इस लागू करने के लिए, सम्मिलित के लिए आप defaults के साथ भाग मिल सकता है, लेकिन अगर किसी को एक मूल्य में गुजरता है यह ऊपर लिख देगा default

5

तुम एक हो सकता है होगा RowCreated DATETIME DEFAULT (GETDATE()) उस तारीख को संभालने के लिए जब पंक्ति प्रारंभ में स्वचालित रूप से बनाई गई थी - लेकिन RowModified DATETIME कॉलम के लिए ऐसा करने के लिए ट्रिगर लिखने से कुछ भी कम नहीं है।

हर तालिका के लिए, आप इस तरह RowModified स्तंभ कुछ संभाल करने के लिए एक AFTER UPDATE ट्रिगर लिखने के लिए होगा: यह एक तालिका में कॉलम जोड़ने जाएगा

CREATE TRIGGER dbo.trg_YourTableUpdated 
ON dbo.YourTable AFTER UPDATE 
AS BEGIN 
    UPDATE dbo.YourTable 
    SET RowModified = GETDATE() 
    FROM INSERTED i 
    WHERE dbo.YourTable.ID = i.ID 
END 
संबंधित मुद्दे

 संबंधित मुद्दे