【问题标题】:How to restore SQL Server 2012 database?如何恢复 SQL Server 2012 数据库?
【发布时间】:2018-05-25 04:44:47
【问题描述】:

如何从 SQL Server 2012 恢复数据库?

这是我的代码:

private void [connTes()][1]
{
        try
        {
            conString = "server=.\\SQLEXPRESS;database=db_datatestproject;user=admin;password=123;Integrated Security=True";
            connnn = new SqlConnection(conString);
            connnn.Open();
        }
        catch
        {
        }
}

private void button1_Click(object sender, EventArgs e)
{
        connTes();

        try
        {
            if (txtlocation.Text == "")
            {
                MessageBox.Show("select database");
                return;
            }
            else
            {
                string databesing = connnn.Database.ToString();
                string a = "ALTER DATABASE " + databesing + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE;";
                a += "RESTORE DATABASE "+databesing+" FROM DISK ='"+txtlocation.Text+"' WITH REPLACE;";

                SqlCommand cmd = new SqlCommand(a, connnn);
                SqlDataReader dr = cmd.ExecuteReader();
                connnn.Close();
                connnn.Dispose();

                MessageBox.Show("done restored");
            }
        }
        catch(SqlException ex)
        {
            MessageBox.Show(ex.ToString());
        }
}

这是我得到的错误:

RESTORE 无法处理数据库“db_testproject”,因为它被会话使用。建议在执行此操作时使用 master 数据库。 RESTORE DATABASE 异常终止。

如何解决这个错误?

非常感谢任何帮助。

谢谢。

【问题讨论】:

  • 由于您没有从该SqlCommand 获取任何数据,因此请使用ExecuteNonQuery() 而不是ExecuteReader()....
  • 我经常遇到这个问题。 cmd.ExecuteNonQuery() 和声明 SqlDataReader dr = cmd.ExecuteReader() 之间有何不同?我怎样才能看到不同之处?

标签: c# database sql-server-2012 restore


【解决方案1】:

添加

USE MASTER; 
GO

到您的 TSQL 恢复命令的开头。

您需要在另一个数据库中,而不是您正在恢复的那个。

还请注意@marc_s 的评论:“由于您没有从该SqlCommand 取回任何数据,请使用ExecuteNonQuery() 而不是ExecuteReader()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多