【问题标题】:Detach SQL Server database in C# [duplicate]在 C# 中分离 SQL Server 数据库[重复]
【发布时间】:2017-10-18 10:34:33
【问题描述】:
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source =.; Initial Catalog = master; Integrated Security = True;";
con.Open();

string str = "USE master;" +
"EXEC sp_detach_db @dbname = N'PhoneBookDB'";

SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Detached", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Exit();

我收到此错误:

无法分离数据库“PhoneBookDB”,因为它当前正在使用中。 将数据库上下文更改为“主”。

我该怎么办?

【问题讨论】:

  • 没有其他人在使用数据库?
  • 您是否尝试在分离前将数据库设置为离线和/或单用户?

标签: c# sql-server database detach


【解决方案1】:

你可以试试这个:

SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source =.; Initial Catalog = master; Integrated Security = True;";
con.Open();

string str = "USE master;" +
"ALTER DATABASE PhoneBookDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; EXEC sp_detach_db @dbname = N'PhoneBookDB'";

SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Detached", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
    Application.Exit();

您也可以尝试使用sp_whosp_whoisactive 查找当前连接并终止它们。

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2013-06-24
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多