今天遇到数据库可疑,以前都是直接删了还原,这次没有最新的备份文件,一起看看脚本怎么解决

 --最好一句句执行,方便看到错误
USE MASTER
GO
--开启数据库选项"允许更新"
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
--将数据库状态改为"紧急"
ALTER DATABASE CEM2015 SET EMERGENCY
GO
USE CEM2015
GO
--将数据库设置为单用户模式,不能在 master 或 tempdb 数据库上使用 sp_dboption; 保证仅一个用户连接数据库在
sp_dboption 'CEM2015', 'single user', 'true'
GO
--修复数据库存在的一致性错误与分配错误
DBCC CHECKDB('CEM2015','REPAIR_ALLOW_DATA_LOSS')
GO
--将数据库状态改为"在线"
ALTER DATABASE CEM2015 SET ONLINE
GO
--关闭数据库选项"允许更新"
sp_configure 'allow updates', 0 reconfigure with override
GO
--将数据库设置为多用户模式
sp_dboption 'CEM2015', 'single user', 'false'
GO --以上是数据库可以修复脚本,下面附查询辅助脚本
--查询指定数据库连接信息
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='CEM2015')
--查询数据库状态
SELECT state_desc FROM sys.databases WHERE NAME='CEM2015'
--将数据库设置为单用户模式
USE master;
GO
ALTER DATABASE CEM2015
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
--将数据库设置为多用户模式
ALTER DATABASE CEM2015
SET MULTI_USER;
GO

官方数据库状态定义

https://msdn.microsoft.com/zh-cn/library/ms190442(v=sql.100).aspx

网上说的另一种方法:

1:重新建立一个,一样的数据库,路径名称,文件都一样。

2:关掉SQL Server服务;

3:把源文件COPY过来;

4:开启SQL Server服务,这样问题同样就解决了。

这种方法不好使,可能和环境或者版本有关系,我这试了是没效果的,重新copy之后启动,数据库前面的加号点开报错(数据库一致性之类的错),也就是数据库还是不能用。

看这逻辑好像只是换了个马甲,实际问题并没修复,不知原理,有知道的网友麻烦科普一下.

SqlServer2008 数据库可疑的更多相关文章

  1. Java连接SqlServer2008数据库(转)

    Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下 ...

  2. Sqlserver2008 数据库镜像会话的初始连接

    sqlserver2008 数据库镜像服务配置完成后,大家会发现我们有了两个数据库服务,这两个服务可以实现自动故障转移,那么我们的程序如何实现自动连接正常的数据库呢? 这个问题很简单,使用ADO.NE ...

  3. SQLServer2008数据库安装图解

    SQLServer2008数据库安装图解... ======================================= 解压下载的安装包,右键运行Setup.exe文件 =========== ...

  4. 将MySQL数据库转移到SqlServer2008数据库

    由于工作需要用到了将MySQL数据库转成SqlServer数据库,查了一些资料发现将SqlServer数据库转成MySQL数据库的文章很多,但是反过来的就很少了.下面就将自己的方法分享给大家. 这里用 ...

  5. 修改sqlserver2008数据库的排序规则 (转)

    修改sqlserver2008数据库的排序规则 (转)      修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...

  6. Java连接SqlServer2008数据库

    Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下 ...

  7. SQLServer2008数据库卸载图解

    SQLServer2008数据库卸载图解... ================================= 在控制面板的,程序和功能中选中:Microsoft SQL Server 2008 ...

  8. SqlServer数据库(可疑)解决办法4种

     亲自试过,可行!!!!! SqlServer数据库(可疑)解决办法4种   重启服务--------------------------------------------------日志文件丢了, ...

  9. MSSQL 2005数据库可疑状态

    今天早上打开进销存,提示链接失败,经过检查参数,网络.端口等各种情况,均没有发现问题,最后检查数据库本事的问题. 通过studio进去发现我的进销存数据变成了(可疑)状态,随机百度修复方法,修复方法还 ...

随机推荐

  1. [置顶] Ajax核心--XMLHttpRequest对象

    XMLHttpRequest 对象是AJAX功能的核心,学习XMLHttpRequest对象就先从创建XMLHttpRequest 对象开始,了解在不同的浏览器中创建XMLHttpRequest 对象 ...

  2. unity3d导出pdf

    unity生成pdf格式,首先需要导入iTextSharp.dll ,下面是我写的一些方法,可以直接用.直接贴代码, using UnityEngine; using System.Collectio ...

  3. 学用 ASP.Net 之 System.Math 类

    本文来自:http://www.cnblogs.com/del/archive/2011/01/03/1924746.html   成员: /* 字段 */ Math.E;      //2.7182 ...

  4. C#委托的异步调用【转】

    本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: ); //模拟该方法运 ...

  5. C++暂时对象

    C++真正所谓的暂时对象是不可见的--不会在你的源码中出现.仅仅要你产生一个non-heap object而没有为它命名,便诞生了一个暂时对象.此等匿名对象通常发生于两种情况: 一是当隐式类型转换(i ...

  6. J2EE学习的一部分--JDBC详细说明

    今天是关于我们JDBC相关知识,左右JDBC我想大家都很熟悉的,我记得在很早以前就开始使用它,我记得那是一个大二的学生做课程设计.但随后以完成任务,所以遇到的问题google,当时没有时间组织,下关于 ...

  7. WAV文件格式分析

    一. RIFF概念 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这样的结构称为"资源互换文件格式"(Resources lnterchange File ...

  8. Flash Recovery Area

    1. 设置闪回恢复区 闪回恢复区主要通过3个初始化参数来设置和管理 db_recovery_file_dest:指定闪回恢复区的位置db_recovery_file_dest_size:指定闪回恢复区 ...

  9. iOS开发之git学习

    本人是参考廖雪峰的git学习的.他写的非常详细,我在这里就是把我学习中的总结以及碰到的坑写出来. /* 初始化git仓库:git init */ /* 添加文件到git仓库 */ 分两步: 第一步:追 ...

  10. C#读取txt文件返回DATATABLE

    //1.打开资源管理器 OpenFileDialog open = new OpenFileDialog(); if (open.ShowDialog() == DialogResult.OK) { ...