में उपयोगकर्ता कैस्केड ड्रॉप करें मुझे किसी भी उपयोगकर्ता इंटरैक्शन के बिना बैच से एक विशिष्ट उपयोगकर्ता (जो सक्रिय सत्र हो सकता है) छोड़ने में सक्षम होना चाहिए। मुझे सक्रिय सत्रों की परवाह नहीं है और उन्हें छोड़ दिया जाना चाहिए और वापस लुढ़का जाना चाहिए। ओरेकल (Windows पर 10 ग्राम XE) के लिए मैं इसे कैसे करते हैंओरेकल
osql -E -S localhost -b -Q "use master if ((select name from sysdatabases where name='%DB%') is not null) begin alter database [%DB%] set single_user with rollback immediate drop database [%DB%] end"
: Microsoft SQL के लिए मैं एक लाइन के साथ इसी तरह काम करना होगा?
मेरे वर्तमान बैच है:
sqlplus sys/*** as SYSDBA @delete1.sql >delete.log
sqlplus sys/***@XE as SYSDBA @delete2.sql >>delete.log
जहां delete1.sql:
startup force;
exit;
और delete2.sql:
drop user MYUSER cascade;
exit;
यह नरक के रूप में बदसूरत है और बहुत लंबा की तुलना लेता है एमएसएसक्यूएल समाधान के विभाजित दूसरे के लिए।
ओरेकल में उपयोगकर्ता के पास एक स्कीमा है, इसलिए उपयोगकर्ता को छोड़ने में बहुत अधिक शामिल है, खासकर अगर इसके पास बहुत सारी वस्तुएं हैं। एक वैकल्पिक उपयोगकर्ता करने पर विचार करें ... खाता लॉक करें और फिर बाद में इसे अधिक सुविधाजनक समय पर छोड़ दें। –
आपको उपयोगकर्ता को कितनी बार छोड़ने की आवश्यकता है - इसका प्रदर्शन क्यों एक मुद्दा है? –
यह मेरी सीआई प्रक्रिया का हिस्सा है (बिल्ड -> डीबी स्कीमा को फिर से बनाएं -> रन एकीकरण परीक्षण) ताकि इसे लगभग हर प्रतिबद्धता पर निष्पादित किया जा सके। मैं इसके प्रदर्शन के साथ रह सकता हूं लेकिन मुझे चौंका दिया गया है ओरेकल के पास इसका मतलब नहीं है। मैं कुछ खास नहीं पूछ रहा हूँ, क्या मैं? – UserControl