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

 --最好一句句执行,方便看到错误
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. OpenStack high-level Functionsenabled

  2. Scrapy URLError

    错误信息如下: 2015-12-03 16:05:08 [scrapy] INFO: Scrapy 1.0.3 started (bot: LabelCrawler) 2015-12-03 16:05 ...

  3. 【学习总结】autostart 与 init

    学习总结/etc/xdg/autostart/xxx.desktop,是开机从登录界面跳转到桌面启动的,可以拿到桌面环境变量,用户id是“普通用户”,如果自启动的程序文件所属者为root,则需要 执行 ...

  4. OC基础2:一些基本概念

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.字符常量是存放在单引号中的单个字符,字 ...

  5. Matlab自己定义函数

    Matlab提供了强大的函数库供用户调用,但也支持用户自定义函数.本文使用了范德堡大学教授Akos Ledeczi授课中的样例来一步步说明怎样在Matlab中自定义函数. 首先,在command wi ...

  6. ThInkPHP中的常量

    除了常规变量的输出外,模板引擎还支持系统变量和系统常量.以及系统特殊变量的输出.它们的输出不需要事先赋值给某个模板变量.系统变量的输出必须以$Think.打头,并且仍然可以支持使用函数.常用的系统变量 ...

  7. Excel 用row()函数 在Excel中自动添加序号,

    1.如图 2.用if条件根据产品名称判断是否有值进而序号自动添加 If(G9="","",Row()-8)

  8. 自写Date工具类

    以前写项目的时候总是在使用到了时间的转换的时候才在工具类中添加一个方法,这样很容易导致代码冗余以及转换的方法注释不清晰导致每次使用都要重新看一遍工具类.因此整理出经常使用的一些转换,用作记录,以便以后 ...

  9. tabBar中tabBarItem选中颜色自定义设置

    1.在storyBoard中,选中tabBarController,设置tabBar中KeyPath中的(selectedImageTintColor)如图 2. 直接代码设置 tabBarContr ...

  10. jmake 编译当前目录c/c++单文件 指定文件 可加选项

    基础版本的jmake是将所有当前文件夹下的C/C++文件生成单文件编译命令,并且jmake命令不可加选项. 现在做的改进是能在输入命令jmake时加上一些选项了,‘-’开头的选项加入到每个编译单文件的 ...