基于SQLSERVER--数据库表的修复

sqlserver数据库修复 支持从dbcc checkdb检测日志报错 修正文件 例如各种分配错误 找不到块等错误 支持数据库不能附加,有损坏事务 9003 9004 错误或者页校验损坏 823 824 等情况 支持数据库版本及总块数获取、 支持检测数据库是否丢失页 支持从其他文件导入块 支持mdf系统表严重损坏从老备份MDF获取系统表 支持重建pfs gam sgam等块 支持反删除表 然后使用数据库恢复软件 恢复被删除的表数据 支持表架构损坏修复 支持自由编辑 数据库页面 任意hex值。 完全独立处理下列故障. 阅读详情

目录

第一步:数据库完整性检查

第二步:尝试检查修复数据库表

第三步:创建备份数据表

第四步:创建触发器

第五步:删除主键

第六步:删除重复主键元组

第七步: 查询删除数据情况

第八步:再次执行第二步,验证

第九步:数据导回

第十步:删除备份数据表

注意事项:在删除和插入数据时,保证系统没有触发器或关联表等情况的


 


第一步:数据库完整性检查

检查数据库完整性性,根据提示可以确认是那个数据表损坏,SQL脚本如下:

dbcc checkdb('数据库名称')

第二步:尝试检查修复数据库表

根据第一步检查结果确认修复数据库表,SQL脚本如下:

use '数据库名称'
declare @dbname varchar(255) 
set @dbname='数据库名称' 
exec sp_dboption @dbname,'single user','true' 
dbcc checktable('待修数据表',REPAIR_ALLOW_DATA_LOSS) 
dbcc checktable('待修数据表',REPAIR_REBUILD) 
exec sp_dboption @dbname,'single user','false'

如果第二步后仍存在主键重复的问题,执行以下步骤

第三步:创建备份数据表

为待修数据表创建备份表,SQL脚本如下:

USE '数据库名称'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].['备份表名称'](
--。。。。。。。。。。
	--与待修表字段完全一致,为避免主键重复,备份表不要建立主键
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

第四步:创建触发器

为待修数据库创建出发器,使得在删除重复主键的元组时,能够备份到备份表中,SQL脚本如下:

USE '数据库名称'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].['触发器名称'] ON [dbo].['待修数据表'] FOR Delete
AS
BEGIN  
    INSERT INTO '备份数据表' select * from deleted
END
GO

第五步:删除主键

删除待修数据表,为下一步删除重复主键元组做准备

ALTER TABLE '待修数据表' DROP PRIMARY KEY

第六步:删除重复主键元组

/*假设待修数据表为test
待修数据表主键字段包含
{
 a1  varchar(25)
 a2  Datetime
 a3  int
 a4  char(8)
}
*/
declare cur_test CURSOR FOR
select a1,a2,a3,a4 from test 
	group by a1,a2,a3,a4
	having COUNT(*)>1 order by a1
OPEN cur_test
declare @ma1 varchar(25)
declare @ma2 Datetime
declare @ma3 int
declare @ma4 char(8)
fetch Next from cur_test into @ma1,@ma2,@ma3,@ma4
while @@FETCH_STATUS=0 
begin 
delete from test where a1=@ma1 and a2=@ma2 and a3=@ma3 and a4=@ma4
fetch Next from cur_test into @ma1,@ma2,@ma3,@ma4
end
close    cur_test
deallocate cur_test

第七步: 查询删除数据情况

Select * from '备份数据表'

第八步:再次执行第二步,验证

第九步:数据导回

根据具体情况,将备份表部分数据导入到修复好的数据表中

insert into '修复数据表' select distinct * from '备份数据表'

第十步:删除备份数据表

drop table '备份数据表'

注意事项:在删除和插入数据时,保证系统没有触发器或关联表等情况的

别再死记硬背了!用Python可视化带你直观理解柯西收敛定理(附NumPy代码) 本文通过Python可视化技术,结合NumPy和Matplotlib,直观展示柯西收敛定理的动态过程。文章提供了完整的代码实现,帮助读者从抽象数学定义过渡到具象理解,特别适合数学学习者和Python开发者。通过热力图和交互式参数探索,读者可以清晰观察数列收敛特性,提升数学分析的学习效率。 阅读详情

相关推荐

Visual Studio调试时遇到ntdll.dll的PDB文件缺失?别慌,这3个方法帮你搞定(附详细步骤)

本文详细解析了Visual Studio调试时ntdll.dll的PDB文件缺失问题,提供了3种实用解决方案:调整调试设置、配置符号服务器与缓存目录、手动下载管理符号文件。通过分步指导和高级技巧,帮助开发者快速恢复完整的调试功能,特别适用于Windows平台下的C++项目开发。

weixin_42537919的博客 513

SQL Server数据修复常用命令DBCC

   MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。   1. DBCC CHECKDB   重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。 use master declare @databasename varchar(255) s

jinxbin的专栏 2488

QT快速配置MSVC2017编译环境(3分钟极简指南)

本文提供了一份3分钟极简指南,帮助开发者快速配置QT的MSVC2017编译环境。通过断网安装、精准勾选组件和配置QT Creator编译器路径等步骤,大幅提升QT开发效率。MSVC2017作为Windows平台高性能C++编译器,特别适合处理大型QT项目,编译速度优势明显。

weixin_30399821的博客 503

sqlServer修复有问题的表

sqlServer数据库库坏表的修复: 1.将数据库设置为单用户模式 exec sp_dboption '库名' ,'single_user','true' 2.修复表 dbcc CHECKTABLE('...

cuizijian2878的博客 257

Python Selenium自动化浏览器实战:从环境搭建到高级技巧

浏览器自动化是现代软件开发与数据处理中的关键技术,它通过程序模拟用户操作,实现网页交互的自动化执行。其核心原理是基于WebDriver协议,通过驱动程序与浏览器进行通信,从而控制浏览器的各种行为。这项技术的价值在于能够将重复性高、耗时长的Web操作转化为可编程、可复用的脚本,极大提升工作效率和准确性。在应用场景上,它广泛覆盖了Web自动化测试、数据采集与爬虫、日常办公流程自动化以及RPA(机器人流程自动化)等多个领域。本文聚焦于Python环境下Selenium这一经典工具,深入讲解其环境配置、八大元素定位

anwenzhao0749的博客 445

Hopf振荡器在机器人步态控制里到底怎么用?一个CPG仿生案例说清楚

本文深入解析了Hopf振荡器在机器人步态控制中的实际应用,通过CPG仿生案例详细展示了从数学方程到关节指令的完整流程。重点探讨了Hopf振荡器的极限环稳定性、参数调节技巧及自适应控制策略,为机器人运动控制提供了高效解决方案。

weixin_29284657的博客 200

使用ALTER TABLE REBUILD减小HEAP表空间

论坛上经常会有很多人抱怨数据库HEAP表碎片很大,无法收缩。在2005之前可以通过创建聚集索引解决或者重建表将数据导入,等到表空间变小后再进行收缩。在2008中有一个新的语法ALTERTABLE REBUILD,使用这条语句可以释放没有使用的空间,提升性能。   下面是我自己的一个表,碎片非常大,占用了大概11G的空间:     使用ALTER TABLE REBUILD之后的效果(

Kevin's Blog SQL讨论群21426959 Dynamics AX 438084988 3235

Apache Hop环境搭建实战:从零到一的下载、安装与配置指南

本文详细介绍了Apache Hop环境搭建的全过程,包括下载、安装与配置指南。从选择正确的JDK17版本到设置关键环境变量,再到启动GUI界面和解决常见问题,提供了全面的实战指导。适合数据工程师和ETL开发者快速上手这一强大的数据集成工具。

weixin_42634811的博客 573

SQL SERVER数据库修复之REPAIR_ALLOW_DATA_LOSS级别简介和实例

如果我们没有数据库备份,无法使用页面还原,那么我们就需要用repair_allow_data_loss来修复(会有数据损失,而且不一定所有的都是可以恢复的)一般来说,最小的修复级别是repair_allow_data_loss。

zyypjc的博客 3777

RAP 通用搜索实战:用 CDS 注解打造 Fiori Elements 的一体化检索体验

RAP应用中的通用搜索优化实践:通过CDS注解实现高效模糊匹配 摘要:本文介绍了在SAP RAP应用中优化列表搜索体验的方法。通过CDS注解配置通用搜索功能,用户无需指定字段即可在多字段中模糊匹配数据。关键实现包括:1)使用@Search.searchable启用全局搜索;2)通过@Search.defaultSearchElement标记核心搜索字段;3)利用@Search.fuzzinessThreshold设置容错阈值(0.7-1.0)处理拼写错误;4)使用@Search.ranking优化结果排序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1398

数仓建模—维度建模之维度表

首先要学会识别维度,维度是相对稳定的、可抽象具有共性的、固有的(天然的)描述度量或事实的上下文属性信息,失去维度信息的度量信息是没有意义的或者说是失去维度信息的事实表是没有意义的。其次要掌握维度表的设计原则和设计流程,从而更加科学的设计维度表,其实这些东西都是术,我们一直都说一句话大道至简,其实如果你掌握了精髓,抛开这些术也可以做到得心应手,这就像张无忌练太极剑一样,忘记了才能达到道的境界,也就是无我,如果做不到就记住这些原则加以应用从而达到术的境界。

2401_84052244的博客 4361

使用sql语句修复表

网站的症状表现 例如article文章表损坏,出现网站后台登录正常,但是后台文章管理和前台文章部分的内容全部空白。 1、表损坏的原因 导致表损坏的原因有很多,一般常见的有以下几种: 服务器不正常关机导致表文件损坏; 硬盘故障; mysql写入操作时被关闭进程。 2、表损坏的症状 一个表损坏的症状从数据库上表现为: 打开表时会提示“Can't open file: ‘×××.MYI' (errno: 145)”; 查询数据时会类似提示“Incorrect key file for ta.

u011042325的博客 2007

2026华为OD面试题084:贪心的商人

商人经营一家店铺,有 `number` 种商品。由于仓库限制,每件商品的最大持有数量是 `item[index]`。 每种商品每天有一个价格 `item_price[item_index][day]`。通过对商品买进和卖出获取利润,请给出商人在 `days` 天内能获取到的最大利润。 注:同一件商品可以反复买进和卖出。 输入描述: - 第一行输入商品数量 `number` - 第二行输入商人售货天数 `days` - 第三行输入 `number` 个整数,表示每件商品的最大持有数量 `item[in

琅嬛福地 273

SqlServer2014检查修复数据库和表

use master declare @databasename varchar(255) set @databasename='CMSV51' ALTER DATABASE CMSV51 set SINGLE_USER dbcc checkdb(@databasename, REPAIR_ALLOW_DATA_LOSS)--dbcc checkdb(@databasename,REPAIR_R...

来啊 快活啊 3165

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MS Sql Server 数据库或表修复(DBCC CHECKDB)

MS Sql Server 数据库或表修复(DBCC CHECKDB) MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。   1. DBCC CHECKDB   重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。  ...

j67884159的博客 786

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【解决】SQL Server 检测到基于一致性的逻辑 I/O 错误

<br />数据库:SQL2008<br />背景:新建DB_GZN 恢复数据库备份文件<br />         执行:<br />         select * from VI_MPS_PAPLT <br />         错误提示:<br />        消息 824,级别 24,状态 2,第 2 行<br />SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x20d61048,但实际为: 0x7a8ab3ae)。在文件 'C:/Program Fil

sherrysy720的专栏 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

dbcc dbreindex server sql_DBCC DBREINDEX Sql数据库表修复

寒山sql数据库修复中心http://www.qjsmw.com/MSSqlServer数据库或表修复数据库或表修复(DBCCCHECKDB)MSSqlServer提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。1.DBCCCHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性...

weixin_39989222的博客 350

SQLSERVER 数据库或表修复(DBCC CHECKDB)

数据库或表修复(DBCC CHECKDB)

m0_50687721的博客 6387

MSSQL 表修复语句

一早发现C盘爆满了,查询了下发现是mssql下面占用了几十G的log以及mdmp文件 一般发现这种文件就是代表着数据库出问题了。 检查数据库,发现某个数据库有问题,(回想起来前天做了一个操作,可能有问题) use keplogdb; --要修复的数据库名称alter database keplogdb set SINGLE_USER;--multi_user --单 多用户模式切...

aocheng6464的博客 411

sqlServer中修复有问题的表

sqlServer数据库库坏表的修复:  1.将数据库设置为单用户模式  exec sp_dboption '库名' ,'single_user','true'  2.修复表  dbcc CHECKTABLE('表名',REPAIR_ALLOW_DATA_LOSS)  3.将数据库设置回多用户模式  exec sp_dboption '库名' ,'single_user','fal

xiuzhentianting的博客 894

dbcc mysql_MSSql使用DBCC CHECKDB修复数据库或表

MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误MS Sql Server 提供了很多修复的命令,当质疑或是有的无法完成读取时可以尝试这些修复命令。1. DBCC CHEC...

weixin_42501704的博客 618

sqlserver数据库坏块修复

reason:原因有多种;最有可能的是在程序对表进行插入或者修改时强制重启数据库;或者程序大规模修改非聚集索引列等引起I/O错误;报错截图:修复步骤:1. 检查表DBCC CHECKT...

gjc592的博客 708

MS SqlServer DBCC CHECKDB 数据库/表修复

MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。   1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。 use masterdeclare @databasename varchar(255)set @da...

weixin_30670925的博客 425

MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)

----------------- 【1】 use master go sp_configure 'allow updates',1 reconfigure with override go ----------------- 【2】 update sysdatabases set status=-32768 where dbid=DB_ID('zc_post') --------...

系统运维 1079

检查数据库、坏表修复

sqlServer数据库库坏表的修复:   1.将数据库设置为单用户模式   exec sp_dboption ’库名’ ,’single_user’,’true’   2.修复表   dbcc CHECKTABLE(’表名’,REPAIR_ALLOW_DATA_LOSS)   3.将数据库设置回多用户模式   exec sp_dboption ’库名’ ,’single_user’,

博客 2977
上一篇: QWT 安装教程
下一篇: MYSQL 1045错误处理方法
吖!HeiYouHei
博客等级 码龄11年 12粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值