//嘿嘿~ 因为刚注册,没有什么积分....对不起各位了,但是,我这贴也解决了一些删除用户连接、还原数据库的求助贴的问题呀...:)在C#编程中,用t-sql已经杀掉某一数据库实例的所有连接ID,并成功还原,但紧接着创建该数据库实例的某一连接并进行查询时,报"常规网络错误...",应该是该数据库实例没有启动,请问各位高手:如何用T-sql重启mssql某一数据库实例?sConnMaster = ConfigurationSettings.AppSettings["ConnectString"].Replace("database=DAM","database=Master");
oConn = new SqlConnection(sConnMaster);
SqlConnection oConn2 = new SqlConnection(sConnMaster);
sSql = "Select spid From master..sysprocesses Where dbid=db_id('DAM')";
oCmd=new SqlCommand(sSql,oConn);
oConn.Open();
oConn2.Open();
reader = oCmd.ExecuteReader();
while(reader.Read())
{
sSql = "KILL "+reader["spid"].ToString();
oCmd=new SqlCommand(sSql,oConn2);
oCmd.ExecuteNonQuery();
}
reader.Close();
oConn.Close();
oConn2.Close();string s = dg[dg.CurrentRowIndex, 1].ToString();
sSql = "EXEC sp_addumpdevice 'disk', 'AURORA', 'c:\test.bak' "
+ " restore database DAM from AURORA with Recovery "
+ " EXEC sp_dropdevice logicalname='AURORA'";
oConn.Open();
oCmd=new SqlCommand(sSql,oConn);
oCmd.ExecuteNonQuery();
oConn.Close();oConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
oConn.Open();
oCmd = new SqlCommand("select * from bk_info",oConn);
oCmd.ExecuteNonQuery();//-------------------------------在此处报错。
oConn.Close();
oConn = new SqlConnection(sConnMaster);
SqlConnection oConn2 = new SqlConnection(sConnMaster);
sSql = "Select spid From master..sysprocesses Where dbid=db_id('DAM')";
oCmd=new SqlCommand(sSql,oConn);
oConn.Open();
oConn2.Open();
reader = oCmd.ExecuteReader();
while(reader.Read())
{
sSql = "KILL "+reader["spid"].ToString();
oCmd=new SqlCommand(sSql,oConn2);
oCmd.ExecuteNonQuery();
}
reader.Close();
oConn.Close();
oConn2.Close();string s = dg[dg.CurrentRowIndex, 1].ToString();
sSql = "EXEC sp_addumpdevice 'disk', 'AURORA', 'c:\test.bak' "
+ " restore database DAM from AURORA with Recovery "
+ " EXEC sp_dropdevice logicalname='AURORA'";
oConn.Open();
oCmd=new SqlCommand(sSql,oConn);
oCmd.ExecuteNonQuery();
oConn.Close();oConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
oConn.Open();
oCmd = new SqlCommand("select * from bk_info",oConn);
oCmd.ExecuteNonQuery();//-------------------------------在此处报错。
oConn.Close();
int iCount=0;repeat:try
{
DateTime dt = DateTime.Now;
while(DateTime.Now.Subtract(dt) < new TimeSpan(0,0,0,10))
{
continue;
}
iCount++;
adbk = new SqlDataAdapter("select * from bk_info", oConn);
DataTable table = new DataTable();
adbk.Fill(table);
}
catch
{
if (iCount<5)
{
goto repeat;
}
}