我做了个数据库的备份和恢复,但是当我备份想恢复的时候,我想先删除数据库再恢复,但是说数据库正在使用不能删除,我想不删除数据库就只接覆盖恢复,但是也不行,请大家帮忙看看如何实现数据库的恢复啊!!

解决方案 »

  1.   

    删除数据之前先
    user "其它数据库"

    drop database "要删除的数据库"例如:
    user master
    drop database "要删除的数据库"
      

  2.   

    技术交流群号:23266021
    欢迎大家在此讨论关于.net的各种技术。1号群
    使用存储过程来做简单且稳定。
      

  3.   

    呵呵,你怎么不查一下原来已有的帖子呢,我已经回答过这个问题了,既然你问我再写一遍执行下面代码强制关闭所有与数据库的连接,然后再执行恢复操作就行了。
    数据库还原是必须关闭所有与数据库的连接,否则,无法还原。也就会出现你所说的提示信息。
    你可以强制关闭与数据库的连接,代码如下:
    //strConn -- 数据库连接字符串
    //strDatabaseName -- 备份的数据库名称
    public void CloseDatabaseProcesses(string strConn,string strDatabaseName)
    {
        SqlConnection conn=new SqlConnection(strConn);
        
        stirng strSql="select spid from master..sysprocesses where dbid=db_id('" +     strDatabaseName+ "')";
        SqlCommand comm=null;
        try
        {
            comm=new SqlCommand(strSql,conn);        conn.Open();
            SqlDataReader dr=comm.ExecuteReader();        while(dr.Read())
            {
                    strSql = "kill " & (dr[0].ToString ());                comm= New SqlCommand(strSql, conCn);
                    comm.ExecuteNonQuery();
            }
        }
        catch(Exception ex)
        {
            throw new Exception(ex.Message);
        }
        finally
        {
            if(conn!=null)
            {
                conn.Dispose();
            }
        }
     }
      

  4.   

    上面这代码有问题啊,说“与此相关的datareader连接没有关闭”但是明明关了列,加了dr.close();也没有用,都说datareader连接没有关闭!请大家帮忙看哈啊
      

  5.   

    除了下面注释的是打错外,是没有问题的,我就是用的这个方法.   
    while(dr.Read())
            {
                    strSql = "kill " & (dr[0].ToString ());                comm= New SqlCommand(strSql, conn);//将conCn修改为conn
                    comm.ExecuteNonQuery();
            }