मुझे पंक्ति में बदलकर सभी मूल्यों को प्राप्त करने और अन्य 'ऑडिट' तालिका में संशोधन पोस्ट करने की आवश्यकता है। क्या मैं इसे पंक्ति से प्रत्येक तत्व के लिए शर्तों को लिखने के बिना पूरा कर सकता हूं? मैं http://www.firebirdfaq.org/faq133/ से एसक्यूएल जो आप सत्यापन के लिए सभी शर्तों देता है पता है:फायरबर्ड - एक ट्रिगर के अंदर सभी संशोधित फ़ील्ड प्राप्त करें
select 'if (new.' || rdb$field_name || ' is null and old.' ||
rdb$field_name || ' is not null or new.' || rdb$field_name ||
'is not null and old.' || rdb$field_name || ' is null or new.' ||
rdb$field_name || ' <> old.' || rdb$field_name || ') then'
from rdb$relation_fields
where rdb$relation_name = 'EMPLOYEE';
लेकिन यह ट्रिगर में लिखा जाना चाहिए। इसलिए, यदि मैं एक टेबल बदलता हूं तो मुझे ट्रिगर को संशोधित करने की आवश्यकता है।
इस तथ्य के कारण कि फायरबर्ड एक वर्चुअल वैरिएबल के आकार को गतिशील रूप से बढ़ाने की अनुमति नहीं देता है, मैं एक टेक्स्ट वर्ब में इसे डालने से पहले, सभी मूल्यों को एक बड़े वर्चर वेरिएबल को कास्टिंग और संयोजित करने की सोच रहा था।
क्या GTTs का उपयोग किए बिना इसे पूरा करने की कोई संभावना है?
http://www.upscene.com/products.audit.iblm_main.php
अन्यथा आप new./old उपयोग नहीं कर सकते:
+1 ... लेकिन क्या यह काम करता है? [यह मेलिंग सूची थ्रेड] (http://groups.yahoo.com/neo/groups/firebird-support/conversations/topics/100294) सुझाव देता है कि table सिस्टम तालिका ट्रिगर्स गायब हो जाती है जब कुछ तालिका ड्रॉप होती है, और ② यह दृष्टिकोण कम से कम दुर्घटनाग्रस्त होने के लिए प्रयोग किया जाता है। – pilcrow