सबसे नहीं? ओह।
मैं मुख्य रूप से SQL सर्वर का उपयोग करता हूं और यह करता है। मुझे पता है कि ओरेकल नहीं है, लेकिन मुझे लगा कि ओरेकल एक विपथन हो सकता है।
SQL सर्वर में, मुझे पूरा यकीन है कि आप एक ही लेन-देन में कई DDL स्टेटमेंट चला सकते हैं, हालांकि मुझे लगता है कि इसमें कुछ प्रतिबंध हैं (जो कि मैं सब भूल गया हूं)। आप अपनी पसंद की कोई चीज़ बना सकते हैं या बदल सकते हैं या उसे बदल सकते हैं और वापस ले जा सकते हैं। रेड-गेट SQL तुलना (एक उपकरण जिसे मैं प्यार करता हूं) इसका लाभ उठाता है।
ऐसा करने के साथ समस्या यह है कि आपके लेन-देन का दायरा काफी दिलचस्प हो जाता है ... जब आप सिस्टम कैटलॉग को अपडेट ट्रांजेक्शन (DDL) में शामिल करते हैं, तो आप कुछ बहुत महत्वपूर्ण ताले लेने का जोखिम चलाते हैं और आप सिस्टम कैटलॉग तक पहुंच को अवरुद्ध कर सकते हैं। यदि उपयोगकर्ता अपने प्रश्नों को कैटलॉग में अपनी तालिका नहीं पा सकते हैं तो वे बहुत कुछ नहीं कर सकते हैं!
हालांकि, शेष राशि पर, डीडीएल को मल्टी-स्टेटमेंट ट्रांजेक्शन में शामिल करना आसान है।
अधिक उपयोगी रूप से, SQL सर्वर DDL कमांड TRUNCATE
भी मल्टी-स्टेटमेंट लेनदेन का एक तत्व हो सकता है । आप एक लक्ष्य तालिका (बहुत तेज़) को काट सकते हैं, इसका निर्माण कर सकते हैं, और फिर यदि आपको परिणाम पसंद है तो एक प्रतिबद्ध करें। अगर कुछ गलत हो जाता है, तो आप रोलबैक और वॉयला!, यह ऐसा है जैसे आपने टेबल को कभी परेशान नहीं किया। लॉग स्पेस भी कम से कम है। मैं काफी बार इसका फायदा उठाता हूं।