這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 编程语言 » sql数据库误操作修改
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据库误操作修改

发布时间: 2023-04-14 13:01:17

sql SERVER 2008数据还原(误操作delete、update等)

如果你以前有做过全备份,现在再做一个日志备份。
然后,还原全备 with restore方式,再还原日志备份到你删除前的时间点。

你可以还原到一个新数据库上,然后看一下数据是否还原了,如果还原了,把数据更新到原数据库的表上就可以了。

⑵ 今天用SQL SERVER修改了批量21W条数据,突然发现自己改错了,怎样返回上一步

前提条件
--将数据库的恢复模式(Recoverymode)设置为“完整(Full)”
--此操作可以在SQLServerManagementStudio中,选择数据库,鼠标右键,属性后,在选项标签中进行设置。
USE[master]
GO
ALTERDATABASE[test]SETRECOVERYFULLWITHNO_WAIT
GO

--完整备份数据库
backupdatabasetesttodisk='e: est_20130704.dat'
GO
已为数据库'test',文件'Test'(位于文件1上)处理了376页。
已为数据库'test',文件'Test_log'(位于文件1上)处理了3页。
BACKUPDATABASE成功处理了379页,花费1.151秒(2.571MB/秒)。

测试数据.

USE[test]
GO

--创建测试表
CREATETABLEtest_br_table(
IDint,
VALVARCHAR(10),
PRIMARYKEY(ID)
);
GO

INSERTINTOtest_br_tableVALUES(1,'TEST1');
INSERTINTOtest_br_tableVALUES(2,'TEST2');
INSERTINTOtest_br_tableVALUES(3,'TEST3');
GO

SELECTGETDATE()
GO
-----------------------
2013-07-0416:44:12.393
(1行受影响)

--假设误操作,删除所有的数据了.
DELETEFROMtest_br_table
GO
(3行受影响)恢复
USE[master]
GO
--步骤1.备份当前数据库的事务日志:
BACKUPLOG[Test]TOdisk=N'e: est_log'WITHNORECOVERY
GO
已为数据库'Test',文件'Test_log'(位于文件1上)处理了9页。
BACKUPLOG成功处理了9页,花费0.046秒(1.486MB/秒)。

--步骤2.恢复一个误删除之前的完全备份:
RESTOREDATABASE[Test]FROMDISK=N'e: est_20130704.dat'WITHNORECOVERY,REPLACE
GO
已为数据库'Test',文件'Test'(位于文件1上)处理了376页。
已为数据库'Test',文件'Test_log'(位于文件1上)处理了3页。
RESTOREDATABASE成功处理了379页,花费0.828秒(3.574MB/秒)。

--步骤3.将数据库恢复至误删除之前的时间点:
RESTORELOG[Test]FROMDISK=N'e: est_log'WITHSTOPAT=N'2013-07-0416:44:12.393',RECOVERY
GO
已为数据库'Test',文件'Test'(位于文件1上)处理了0页。
已为数据库'Test',文件'Test_log'(位于文件1上)处理了9页。
RESTORELOG成功处理了9页,花费0.013秒(5.258MB/秒)。

核对数据.
use[Test]
GO

SELECT*FROMtest_br_table
GO
IDVAL
---------------------
1TEST1
2TEST2
3TEST3
(3行受影响)

⑶ sql恢复修改前数据

一,如果是oracle数据库,且刚删除不久,那么可以执行下面语句
insert
into
表名
select
*
from
表名
as
of
timestamp
to_timestamp('2007-07-23
10:20:00',
'yyyy-mm-dd
hh24:mi:ss');
语句中的日期时间改成你误操作之前的最近时间
二,如果是sqlserver数据库,那么
1、首先对误删后的数据库做个日志备份;
backup
log
数据库名
to
disk='路径及日志备份文件名'
2、把数据库恢复到最近一次全库备份的日期;
RESTORE
DATABASE
数据库名
FROM
DISK='路径及数据库备份文件名'
WITH
REPLACE,NORECOVERY
3、用步骤1的日志备份把数据库恢复到你误删的那一刻之前;
RESTORE
LOG
数据库名
FROM
DISK='路径及日志备份文件名'
WITH
RECOVERY,STOPAT='2009-4-24
16:40:10'
语句中的日期时间改成你误操作之前的最近时间
三,如果修改之前有做数据库备份,可以新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。.
实时备份数据库到另一个磁盘,有多种不同的实现方式,例如:
1,有两台服务器的话可以做双机热备
2,只有一台服务器可以做磁盘镜像
3,也可以用专门的数据库备份软件

⑷ sql恢复修改前数据

1、首先运行Recovery for SQL Server。

⑸ sqlserver 不小心操作失误

首先SQL Server在你的SQL语句执行完了之后结果就没办法回滚了。
如果数据腊裤纯很重要,一定要回滚的话只能按数据库级轮咐别的纯陪日志重建数据库,并且把你执行更新操作的事务排除掉才行。
需要提醒你的只有今后小心+小心。

⑹ sql server 删除数据错误能还原吗

一、在LOG文件完整的情况下,可以还原。但一般而言,是将数据库的整个的状态还原到误删除数据之前。建议备份当前数据库。


二、给出SQL 2008下的具体做法,别的版本的SQL Server可参照操作。

最常用的就是日志尾部备份恢复法。以下环境2008R2,对于2008及其以上版本可以使用这个方法,其实2005也可以,2000很少用,没测试过。(SQL2008之前可以使用Log Exploer这个第三方工具。)

步骤:


(1)、检查数据库的恢复模式,如图:


点确定,完成后再检查一下表,可以看到,数据已经还原成功。


**************************************************************************

总结:

1、方法看上去有点繁琐,但是实际操作并不太难。

2、再次强调,先备份现场环境,无论故障影响有多严重,保全好当时情况。如果并不是重要生产数据,当别论。

3、步骤建议严格按照上面提示,对重要数据库实际操作前建议先在测试数据库中演练并理解后再正式操作。


额外提醒,此方法的缺点:

1、如果误操作以后还有很多人做了操作,还原后,连着别人的操作数据都会冲掉,所以发生误操作后,应考虑停止它人对数据库的操作。。

2、此方法要对数据库独占,操作过程中,它人无法使用与联接数据库。

⑺ sql2005数据操作有误,怎样回到前一步操作update的时候忘加where,整个字段都更新

不能恢复了,除非盯悔你之前凯氏正有备份
我也这样子过。

我可以分享一下如果避免这种情况
平时养成良好的习惯
1、勤备份数据库
2、除select 语句外其它语句都在句首加上“--”注释掉
如:--insert into table ...
3、开启事务.begin tran...commit/rollback..

以后核森小心啦

⑻ sql修改数据少条件把一列的原数据全给改了,怎么可以撤回

进行返向操作处理。
具体步骤如下:找备份文件还原到另岩运一个数据库名,然后导出数据来覆盖或更新,如果没有备份文件只有回忆一下修改的步骤或修改的内容,进行返向操作来撤回。
SQL是具有数据操纵历高和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率肢枣尺。

⑼ sql 发生误操作能不能恢复

不知道你的数据库是否做了备份,如果没有备份那就恢复不了。

恢复的方法很多,关键是看备份方法。
大型数据库软件(Oracle 、Informix 、Sybase、DB2等)通常都设计了很多数据备份,在需要恢复数据敬顷时可根据备份情况决定)
如果你的数据库有全库亮行陆备份(零级备份),可直接恢复。
如果全库备份(或零级备份)之后又有数据修改,可在全库恢复之后再恢复逻辑带穗日志,不同的数据库软件具体恢复方法是不同的。大多数情况下,只要有完整的数据库全库(零级)备份和逻辑日志备份都是可以恢复的。

⑽ 在sql数据库,我插入一条数据有误,编号错了,和前面的重复,要怎么修改呢

1.直接去数据库修改。2.如果能够单独查询出来这条记录,就用Update去修改,条件就是你查询时的条件。3。如果不能单独查询出来的,可以新添加个字段,录入信息来区分,update时以新字段来做条件,完了后再删除新字段。