2015-06-25 1 views
5

का उपयोग कर एकल उपयोगकर्ता मोड में dacpac प्रकाशित करें, मैं डेटाबेस को अपग्रेड करते समय अनावश्यक डीबी परिवर्तनों को रोकने के लिए एकल उपयोगकर्ता मोड में dac pac प्रकाशित करना चाहता हूं। इसके लिए मैंने माइक्रोसॉफ्ट.SqlServer.Dac.DacServices में फ़ंक्शन परिनियोजन का उपयोग किया है।Microsoft.SqlServer.Dac.DacServices

उस समारोह में एक तर्क DacDeployOptions विकल्प है। मैंने उन विकल्पों में DeployDatabaseInSingleUserMode = true सेट किया है। भले ही यह सत्य पर सेट हो, मैं डीएपी ऑपरेशन करने में सक्षम हूं जबकि dacpac तैनाती कर रहा है।

क्या मुझे कुछ भी याद आ रही है? या यह हासिल करने के लिए कोई और तरीका है।

सहायता की सराहना की जाएगी!

+3

मैं एक ऐसी ही समस्या के साथ किसी और को देखने के लिए है -। आप स्क्रिप्ट उत्पन्न कर सकते हैं और देखें कि क्या इसके पास एक वैकल्पिक डाटाबेस सेट SINGLE_USER है ... शीर्ष के पास? –

उत्तर

0

डीएसीएफएक्स का कौन सा संस्करण आप उपयोग कर रहे हैं? यदि यह नवीनतम नहीं है, तो सबसे अच्छा नवीनतम प्राप्त करें, क्योंकि आपके द्वारा निर्दिष्ट विकल्पों को पहचानने में बहुत से पुराने लोग बहुत अच्छे नहीं हैं।

वैकल्पिक रूप से, आप ऐसा कर सकता है (यह मैं क्या किया है, बजाय ठीक से काम करने DacFX प्राप्त करने की कोशिश की है

  ServerConnection connection = new ServerConnection(ServerName); 
      Server sqlServer = new Server(connection); 
      Database QADatabase = sqlServer.Databases[DatabaseName]; 
      QADatabase.DatabaseOptions.UserAccess = DatabaseUserAccess.Single; 
      QADatabase.Alter(TerminationClause.RollbackTransactionsImmediately); 
      QADatabase.Refresh(); 

//DACPAC logic goes here 

      QADatabase.DatabaseOptions.UserAccess = DatabaseUserAccess.Multiple; 
      QADatabase.Alter(TerminationClause.RollbackTransactionsImmediately); 
      QADatabase.Refresh(); 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^