读书人

C#还原SQL数据库时出错-数据库正在使用

发布时间: 2011-12-30 23:30:45 作者: rapoo

C#还原SQL数据库时出错--数据库正在使用中,无法获取独占访问权!急....解决即给分
小弟用use master restore database xxx from disk= 'c:\bk.bak ' 还原SQL数据库,但提示数据库在使用中,无法还原!

我用SQLDMO的方法试了一下,也不行,请问如何杀死连接此数据库的进程!

望高手给点思路或代码,多谢了!

[解决办法]
http://blog.csdn.net/jame_peng/archive/2006/05/16/740373.aspx
[解决办法]
先杀所用访问该数据库进程:
conn是master系统数据库的连接
//获取所有用户进程
string strSQL = "select spid from master..sysprocesses where dbid=db_id( '数据库名 ') "
SqlDataAdapter Da=new SqlDataAdapter(strSQL, conn);

DataTable spidTable=new DataTable;
Da.Fill(spidTable);

SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.Text;
Cmd.Connection = conn;

for (int iRow = 0; iRow <= spidTable.Rows.Count - 1; iRow++)
{
Cmd.CommandText= "kill " + spidTable.Rows[iRow][0].ToString(); //强行关闭用户进程
Cmd.ExecuteNonQuery();
}


[解决办法]
我可以在本地把sql的事件查看器打开跟踪,然后再打开一个dtabase,还原它,看看跟踪过程是如何执行的

读书人网 >C#

热点推荐