当前位置: 首页 > 编程语言 > C#

以编程方式分离数据库分享

时间:2023-04-10 12:42:21 C#

以编程方式分离数据库我有一个数据库“D:MDFCONNECTIONSAMPLEBINDEBUGHARMDATABASE.MDF”。我尝试使用以下代码分离或重命名它:SqlConnectionconn=newSqlConnection("DataSource=.\MSSQLSERVER2008;database=Master;IntegratedSecurity=True;");SqlCommandcmd=newSqlCommand("",conn);cmd.CommandText=@"sys.sp_detach_dbD:MDF连接SAMPLEBINDEBUGHARMDATABASE.MDF";conn.Open();cmd.ExecuteNonQuery();cmd.Dispose();conn.Dispose();但出现错误:''附近的语法不正确。正如@KyleHale指出的那样,您在查询中省略了一个引用-它需要是数据库的名称,而不是它的路径。更改:cmd.CommandText=@"sys.sp_detach_dbD:MDF连接SAMPLEBINDEBUGHARMDATABASE.MDF;";变成了:cmd.CommandText=@"sys.sp_detach_db'dbName'";为了在解决错误Unabletodetachdatabase'YOUR_DATABASE'asitiscurrentlyinuse时分离数据库,您可以简单地使用以下代码:privatevoidDetachDatabase(){StringdatabaseConnectionString="DataSource=localhost;MultipleActiveResultSets=True;Integrated安全=真”;使用(SqlConnectionsqlDatabaseConnection=newSqlConnection(databaseConnectionString)){try{sqlDatabaseConnection.Open();stringcommandString="ALTERDATABASEYOUR_DATABASESETOFFLINEWITHROLLBACKIMMEDIATEALTERDATABASEYOUR_DATABASESETSINGLE_USEREXECsp_detach_db'YOUR_DATABASE'";SqlCommandsqlDatabaseCommand=newSqlCommand(commandString,sqlDatabaseConnection);sqlDatabaseCommand.ExecuteNonQuery();}catch(Exceptionex){MessageBox.Show(ex.Message);}}}请注意,YOUR_DATABASE有时不带单引号,有时带单引号。只需将YOUR_DATABASE替换为不带.mdf扩展名的数据库名称,并保留字符串的其余部分...感谢此站点:分离数据库会删除与该站点的连接:SQLServer-如何分离数据库顺便说一句,这对我有用在SQLSERVER2014上使用SMO怎么样?您需要添加对Microsoft.SqlServer.Smo的引用,如果您的开发计算机上安装了SQLExpress或SQLServer,则可以使用该引用。以上就是C#学习教程:程序化分离数据库分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——usingMicrosoft.SqlServer.Management.Smo;voidDetach(){ServersmoServer=newServer("MSSQLSERVER2008");smoServer.DetachDatabase("HARMDATABASE",False);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: