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

 --最好一句句执行,方便看到错误
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. BLOB存储图片文件二进制数据是非对错

    子在一天一天虚度,生活也在一天一天中茫然 做人做事哪能尽如人意,付出多少收获多少虽然存在偏颇,但是不劳而获的心态是万万不对的,更不能去怨天尤人,低调为人.做好自己就可以了 改进你的系统的最好的方法是先 ...

  2. Sonar入门(二): Maven集成Sonar

    Sonar对maven提供了简单可配的支持,要做的事情很简单——在maven/conf下settings.xml <profiles></profiles>标签之间添加如下内容 ...

  3. 【Android】Intent中使用Extra传递数据

    传值方法一 Intent intent = new Intent(); Bundle bundle = new Bundle(); //该类用作携带数据 bundle.putString(" ...

  4. linux 内核源代码分析 - 获取数组的大小

    #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) 測试程序: #include<stdio.h> #include<stdlib. ...

  5. Centos升级gcc4.4.7升级gcc4.8手记

    本博客来自:http://www.mudbest.com/centos%E5%8D%87%E7%BA%A7gcc4-4-7%E5%8D%87%E7%BA%A7gcc4-8%E6%89%8B%E8%AE ...

  6. HTTP概念进阶

    1.什么是回调? 在Java中,就是类A调用类B中的某个方法b,然后类B又在某个时候反过来调用类A中的某个方法a,对于A来说,这个a方法便叫做回调方法 pubilc interface CallBac ...

  7. js触摸屏案例

    js 手机端触发事事件.javascript手机端/移动端触发事件   处理Touch事件能让你跟踪用户的每一根手指的位置.你可以绑定以下四种Touch事件: 1 2 3 4 touchstart:  ...

  8. NOPI使用手册

    目录 1. 认识NPOI 2. 使用NPOI生成xls文件 2.1 创建基本内容 2.1.1 创建Workbook和Sheet 2.1.2 创建DocumentSummaryInformation和S ...

  9. LevelDB.NET性能测试

    最近了解了一下LevelDB,发觉这个嵌入式的K-V数据性能不错,所以顺便想在使用层面了解一下.由于LevelDB也有针对.net的实现,所以就针对了LevelDB.NET进行了一个简单的读写压力测试 ...

  10. C++ Primer之 十二章 类

    1.关于类的const对象 const对象只能调用声明为const的成员函数,在这篇csdn博客中也讨论了这个问题. 究其原因是因为 const 对象A 调用了非const函数F, F因为没有cons ...