मैं वर्तमान में निम्न कोडमज़बूती से एसक्यूएल सर्वर 2008 पर एक डेटाबेस ड्रॉप सी # के माध्यम से
using Microsoft.SqlServer.Management.Smo;
var server = new Server(Server);
server.KillAllProcesses("Db");
server.KillDatabase("Db");
कभी कभी यह काम करता है के माध्यम से एक डेटाबेस ड्रॉप करने की कोशिश कर रहा हूँ, लेकिन दूसरों मैं निम्न अपवाद प्राप्त करें:
Microsoft.SqlServer.Management.Smo.FailedOperationException: सर्वर को होस्ट करें 'होस्ट 1' के लिए डेटाबेस विफल।
---> माइक्रोसॉफ्ट.SqlServer.Management.Common.ExecutionFailureException: एक ट्रांजैक्ट-एसक्यूएल कथन या बैच निष्पादित करते समय एक अपवाद हुआ।
---> System.Data.SqlClient.SqlException: राज्य में परिवर्तन या डेटाबेस 'डीबी' के विकल्प इस समय नहीं किए जा सकते हैं। डेटाबेस एकल-उपयोगकर्ता मोड में है, और उपयोगकर्ता वर्तमान में उससे जुड़ा हुआ है।
किसी भी विचार को कोड के माध्यम से डेटाबेस को विश्वसनीय रूप से कैसे छोड़ें?
तुम कोशिश क्या ' बाद में डाटाबेस डीबी सेट मल्टी_यूसर; 'पहले? –
व्यक्तिगत रूप से मैं इसके लिए एसएमओ का उपयोग नहीं करता, मुख्य रूप से क्योंकि मुझे नहीं पता कि उन 'किल ...()' फ़ंक्शन क्या करते हैं। मैं कहूंगा 'मास्टर मास्टर; रोलबैक तत्काल के साथ वैकल्पिक डाटाबेस डीबी सेट सिंगल_यूज़र; ड्रोप डाटाबेस डीबी; ' –
डेटाबेस को डिफ़ॉल्ट रूप से सिंगलयूसर के रूप में सेट नहीं किया गया है, मुझे लगता है कि KillDatabase विधि पर एक असफल प्रयास इसे एकल उपयोगकर्ता में बदल रहा है और फिर इसे छोड़ रहा है। – Konstantinos