以编程方式分离数据库

2024-02-28

我有一个数据库“D:\MDF CONNECTION SAMPLE\BIN\DEBUG\HARMDATABASE.MDF”。 我正在尝试使用以下代码分离或重命名它:

SqlConnection conn = new SqlConnection("Data Source=.\\MSSQLSERVER2008;database=Master;Integrated Security=True;");
SqlCommand cmd = new SqlCommand("", conn);
cmd.CommandText = @"sys.sp_detach_db D:\MDF CONNECTION SAMPLE\BIN\DEBUG\HARMDATABASE.MDF";
conn.Open(); 
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Dispose();

但出现错误:

“\”附近的语法不正确。


为了分离数据库并同时解决错误

无法分离数据库“YOUR_DATABASE”,因为它当前正在使用

您可以简单地使用以下代码:

    private void DetachDatabase()
    {
        String databaseConnectionString = "Data Source=localhost;MultipleActiveResultSets=True;Integrated Security=True";
        using (SqlConnection sqlDatabaseConnection = new SqlConnection(databaseConnectionString))
        {
            try
            {
                sqlDatabaseConnection.Open();
                string commandString = "ALTER DATABASE YOUR_DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE ALTER DATABASE YOUR_DATABASE SET SINGLE_USER EXEC sp_detach_db 'YOUR_DATABASE'";
                SqlCommand sqlDatabaseCommand = new SqlCommand(commandString, sqlDatabaseConnection);
                sqlDatabaseCommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

请注意您的数据库有时不带单引号,有时带单引号。仅更换您的数据库与您的数据库名称不带.mdf扩展并保留字符串的其余部分原样......

感谢这个网站:分离数据库删除连接 http://www.sqlservercentral.com/Forums/Topic870653-391-1.aspx

还有这个网站:SQL Server – 如何分离数据库 http://sqlandme.com/2013/06/03/sql-server-how-to-detach-a-database/

顺便说一句,这对我在 SQL SERVER 2014 上有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式分离数据库 的相关文章

随机推荐