SqlServer数据库修复Suspect的问题

-- 进入maser数据库

USE master
GO

-- 启用系统表更新
sp_configure ‘allow updates‘, 1
GO
RECONFIGURE WITH OVERRIDE
GO

-- 关闭 c_nzz 数据库的置疑标志
sp_resetstatus c_nzz
GO

-- sp_resetstatus 存储过程代码
IF EXISTS ( SELECT * from sysobjects where name = ‘sp_resetstatus‘ )
   DROP PROCEDURE sp_resetstatus
GO

CREATE PROC sp_resetstatus @dbname varchar(30) AS
DECLARE @msg varchar(80)
IF @@trancount > 0
      BEGIN
         PRINT ‘Can‘‘t run sp_resetstatus from within a transaction.‘
         RETURN (1)
      END
IF suser_id() != 1
      BEGIN
         SELECT @msg =  ‘You must be the System Administrator (SA)‘
         SELECT @msg = @msg + ‘ to execute this procedure.‘
         RETURN (1)
      END
IF (SELECT COUNT(*) FROM master..sysdatabases
         WHERE name = @dbname) != 1
      BEGIN
         SELECT @msg = ‘Database ‘ + @dbname + ‘ does not exist!‘
         PRINT @msg
         RETURN (1)
      END
IF (SELECT COUNT(*) FROM master..sysdatabases
         WHERE name = @dbname AND status & 256 = 256) != 1
      BEGIN
         PRINT ‘sp_resetstatus can only be run on suspect databases.‘
         RETURN (1)
      END
BEGIN TRAN
      UPDATE master..sysdatabases SET status = status ^ 256
         WHERE name = @dbname
      IF @@error != 0 OR @@rowcount != 1
         ROLLBACK TRAN
      ELSE 
         BEGIN
            COMMIT TRAN
            SELECT @msg = ‘Database ‘ + @dbname + ‘ status reset!‘
            PRINT @msg
            PRINT ‘‘
            PRINT ‘WARNING: You must reboot SQL Server prior to  ‘
            PRINT ‘         accessing this database!‘
            PRINT ‘‘
         END
GO

-- 禁用系统表更新
sp_configure ‘allow updates‘, 0
GO
RECONFIGURE WITH OVERRIDE
GO

https://bbs.csdn.net/topics/10304111

原文地址:https://www.cnblogs.com/fightingtong/p/12095804.html

时间: 2024-08-01 04:43:24

SqlServer数据库修复Suspect的问题的相关文章

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及版 [数据库版本]:MS SQL server 2000  [数据库大小]:1GB X 6  (3个账套 总共6个年度). [问题描述]:由于服务器中毒或卡顿,客户将服务器电脑送到 装机店 重做操作系统.未详细告知电脑用途,导致整个硬盘被维修店技术员 全盘格式化重新分区,并且重新做好了新的操作系统,

SQLSERVER数据库主要状态

一个SQLSERVER数据库会处于很多种状态,例如 ONLINE .OFFLINE,RESTORING .RECOVERING .RECOVERY_PENDING  .SUSPECT.EMERGENCY . 只有在ONLINE的状态下,数据库才能被正常访问. 可以利用下面的语句来查看它的状态 select name,state_desc from sys.databases 1.ONLINE 只有在ONLINE的状态下,数据库才能被正常访问 2.OFFLINE 我们可以在Microsoft SQ

SQL数据库修复/数据库置疑修复

SQL数据库修复的三大核心技术: 1.磁盘阵列分析重组技术: 2.数据库恢复与修复技术: 3.SCSI盘物理故障开盘技术. 至今已经成功恢复数百台服务器的SQL数据库,用户覆盖全国. 导致SQL数据库丢失的原因: 1.各种原因:误删除.误格式化.断电等造成的MS SQL SERVER数据库文件破坏. 2.MS SQL SERVER数据库丢失了*.ldf文件,只有一个*.MDF文件,将是非常危险的事情,数据库很可能将无法再次打开,而且会显示“可疑”或者“置疑”字样. 3.SQL SERVER数据库

SQLSERVER 数据库性能的基本

很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据库服务器 做数据库服务器的那台服务器性能要相对较好,磁盘,内存,CPU等等, 那么在选用其中某一台服务器作为数据库服务器之前需要测试每一台服务器的性能 并且需要设置一些硬件的参数,例如设置磁盘控制器的参数,参考文章:Writeback和Writethrough区别 那么具体怎麽测试呢?怎麽得出测试指标呢? 大家可以参考这篇文章:SQL

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

 亲自试过,可行!!!!! SqlServer数据库(可疑)解决办法4种 重启服务--------------------------------------------------日志文件丢了,建一个日志文件-------------------------------------------------- SQL SERVER 2005 数据库状态为“可疑”的解决方法 --MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 REC

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库,安装.备份.还原等问题: 一.存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1.卸载原来的sql server 2000.2005,然后再安装sqlserver 2008,否则经常sql server服务启动不了 2.sql server服务启动失败,解决方法: 进入sql serverconfigure manager,点开 Sql server 网络配置(非sql native client 配置),点sqlzhh(

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

微信 SQLite 数据库修复实践

https://mp.weixin.qq.com/s/N1tuHTyg3xVfbaSd4du-tw 微信 SQLite 数据库修复实践 原创 2017-04-25 guoling WeMobileDev 1.前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录.而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏.考虑到微信这么庞大的用户基数,这个损坏

JavaWeb程序连接SQLserver数据库

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1:在http://www.microsoft.com/en-us/download/details.aspx?id=21599下载sqljdbc.jar的压缩包 2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下 3:需要知道一些数据库方面的技术知识: 先举个例子