को देखते हुए कोई जवाब अभी तक नहीं है, यहाँ मेरी 2 सेंट हैं:
- सम्मिलित के लिए, मैं डिफ़ॉल्ट मान GETDATE()
- अपडेट के लिए के साथ एक दिनांक समय क्षेत्र का प्रयोग करेंगे, मैं भी एक दिनांक समय का प्रयोग करेंगे प्रत्येक बार अद्यतन होने पर ट्रिगर द्वारा फ़ील्ड संशोधित किया जाता है।
- हटाएं के लिए, रिकॉर्ड उपलब्ध नहीं होगा, इसलिए आप इसे क्वेरी नहीं कर सकते।
मैंने ट्रिगर से बचने के लिए टाइमस्टैम्प का उपयोग करने के बारे में सोचा, लेकिन आप टाइमस्टैम्प को डेटाटाइम में परिवर्तित नहीं कर सकते हैं।
संपादित करें: या हो सकता है आप एक "metatable" जहां ट्रिगर में आप परिवर्तन की बचत होगी उपयोग कर सकते हैं तारीखें
CREATE TABLE metatable (
table_name VARCHAR(40) NOT NULL PRIMARY KEY,
last_insert DATETIME NOT NULL,
last_update DATETIME NOT NULL,
last_delete DATETIME NOT NULL
)
INSERT metatable VALUES ('table1', GETDATE(), GETDATE(), GETDATE())
CREATE TRIGGER trg_table1_ins ON table1 FOR INSERT AS BEGIN
UPDATE metatable SET last_insert = GETDATE() WHERE table_name = 'table1'
END
CREATE TRIGGER trg_table1_upd ON table1 FOR UPDATE AS BEGIN
UPDATE metatable SET last_update = GETDATE() WHERE table_name = 'table1'
END
CREATE TRIGGER trg_table1_del ON table1 FOR DELETE AS BEGIN
UPDATE metatable SET last_delete = GETDATE() WHERE table_name = 'table1'
END
मैं इसे चलाता बिना उपयोगी
स्रोत
2009-08-04 14:08:08
जवाब में स्वीकार कर लिया पर सबसे अच्छा भ्रामक है। –