论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Sql Server教程
Tag:注入,存储过程,分页,安全,优化,加密,索引,日志,压缩,base64,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,触发器,socket,安装,sqlserver2000,sqlserver2005,sqlserver2008,视频教程

使用SQL语句进行数据库恢复时的为问题解决

文章类别:Sql Server | 发表日期:2009-10-2 13:03:47

   有时候我们在操作数据库的时候会提示当前有一个或多个进程在使用数据库,访问被拒绝,这时我们就需要查看服务器中那些访问我们需要操作的数据库的进程,然后把它们全部都结束掉(除了本访问进程外),这些进程都是会被存在公共数据库master数据库的sysprocesses表中,所以我们必须先把他们给拿出来然后一个一个结束掉.

///其中db_name是你所要操作的数据库

            SqlConnection conn;
            conn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=db_name;");
            conn.Open();
            string sql1 = "select spid from master..sysprocesses where dbid=db_id('db_name')";
            SqlDataAdapter Da = new SqlDataAdapter(sql1, conn);

            DataTable spidTable = new DataTable();
            Da.Fill(spidTable);//把进程名称放到DataTable中
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;
            if (spidTable.Rows.Count > 1)//只留下一个
            {

               //强制结束掉所有链接AnalysisSystem数据库的进程
                for (int irow = 0; irow < spidTable.Rows.Count - 1; irow++)
                {
                    cmd.CommandText = "kill" + spidTable.Rows[irow].ToString();//关闭用户进程语句
                    cmd.ExecuteNonQuery();
                }
            }
            conn.Close();
            conn.Dispose();

视频教程列表
文章教程搜索
 
Sql Server推荐教程
Sql Server热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058