当前位置:首页 » 编程语言 » sqlserver误删表数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver误删表数据

发布时间: 2023-04-13 05:08:00

sqlserver一个表里的数据没有了,是否硬盘损坏了

人为操作亩孝裤失误。
一个SQL Server表里的数慎前据突然没有了,不是硬盘损坏了,是人为操作失误:有可能是操作者误删、误改、误移动等操作导致数据丢失。
SQL Server是由微软公司开发的关系型数据库管理系统,它是一种可迅简扩展性强、性能卓越、安全可靠的数据库管理系统。

㈡ sql server误删了数据库怎么找回

1、打开SQLServerManagementStudio。

2、右击要备份的数据库——任务——还原——数据库。

3、弹出还原数据库界面。选择“源设备”,点击后面对应的“?”。

4、弹出路径选择界面,点击“添加”。

5、选择要还原的数据库备份文件。点击“确定”,再点击“确定”。

6、将选好的还原集前打勾(如下图),后点击左上角的“选项”。

7、在还原选项中将“覆盖现有数据库”打勾;在恢复状态中,选择“回滚未提交的事务,使数据库处于可以使用的状态”。

㈢ sqlserver怎么恢复删除

使用Log Explorer查看和恢复数据

Log Explorer 4.1.可用于SQL Server2005的日志查看工具

下载地址:
http://download.csdn.net/source/620271

使用方法:

打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect ->
在迹脊Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了

想恢复的话: 右键Log记录 Undo Transation-> 选择保存姿行渗文件名和路径-> 然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ....
然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.

----------------------------------------------------------------------
--如何恢复被delete/update的数据
----------------------------------------------------------------------
1连接到被删除数据库的Db
打开log explorer 选择 "file"->"attach log file"->选择服务器和登陆方式->"connect"->选择"数据库"->"attach"
2 查看日志
在左面操作项目的对话框中选择"browse"项目->"带闹view log"->就可以看到当前的Log记录了
3 恢复数据
右键某一条log记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如: 如果log是delete table where ...的话,生成的文件代码就是insert table ....

----------------------------------------------------------------------
--Log Explorer恢复被drop table和truncate table后的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
操作同上
2 恢复方法
1) 选择"salvaage dropped/truncate"菜单,在右边的对话框中选择表名,和droped/trucated的日期,
File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是truncated,
最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了
2) 选择"ViewDDL Commands"菜单->选"truncate table" 操作项->点击"Salvage"->生成语句->查询分析器里执行

----------------------------------------------------------------------
--log explorer使用的几个问题
----------------------------------------------------------------------
1) 对数据库做完全/差异/日志备份
备份时如果选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了

如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志并做恢复
2) 修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3) 然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4) 不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据

㈣ SQLSERVER 2008误删除表,几百万行数据没了,怎么恢复

SQLSERVER 2008误删除表,几百万行数据没了,怎么恢复
误删了数据可以用恢复软件恢复,你可以用 AneData全能文件恢复。格式化分区或者误ghost到其他的分区数据丢失要恢复,分区突然打不开了提示未被格式化数据要恢复,直接删除或者清空了回收站,卸载软件丢失的数据要恢复等等都可以恢复的,具有反删除、反格式化、分区恢复、高级模式等扫描功能,可以恢复最常见的种种数据丢失的情况。

㈤ sql server误删了数据库怎么找回

你好:

一、还原需要的条件设置

使用命令,是通过sqlserver的事务日志以及一个误删除前的数据库的完整备份进行还原,所以在sqlserver2012的维护计划向导中,要建立完整备份,差异备份和事务日志,具体如下

做好如上两个设置,数据库误删后找回数据就会非常轻松,现在说一下如何还原sqlserver数据到故障点。

二、还原命令

还原主要分为四步走:

1、出现故障后,首先执行备份事务日志命令,这里以AdventureWorks作为数据库名。命令如下:

BACKUP LOG AdventureWorks TODISK = 'C:_transcationlog.bak'

WITHNORECOVERY;

2、从完整备份还原数据

RESTORE DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak'
WITH NORECOVERY, REPLACE


3、从差异备份还原数据

RESTORE DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE


4、从事务日志还原数据,还原到某个时间点之前

DECLARE@dt datetime

SELECT@dt=DATEADD(HOUR,-16,GETDATE())

select@dt

RESTORE LOG [QASupervision] FROMDISK='C:_transcationlog.bak'WITHSTOPAT=@dt,RECOVERY

5、还原数据库,如果数据库提示正在还原中,则执行此命令即可。

RESTORE DATABASEAdventureWorks WITHRECOVERY

㈥ SQL server 怎么还原被误删的数据

sqlserver也是可以扮灶兄恢复的。无论是厅袭用delete,还是truncate.工具叫:

Log辩虚ExplorerforSQLServerv.

要使用logExploer,有个前堤,数据库故障还原模型必须为:完全.

㈦ SQLserver 2000 SP4 数据库中误删除表内容,有删除前的备份,但备份数据库后又写入了很多的数据,要怎么样

只讨论其中的一张表:嫌饥备份库为DataBase_bak,当前库为DataBase
1.新建一个数据库,名称为DataBase_bak,将其还原到删除前的备份
2.
假设DataBase_bak中表table1 原有记录A、B、C
3.
假设DataBase中表table1有记埋世录B、C、D
说明DataBase_bak..table1的记录A是被删除的,DataBase..table1的D记录是新增的
4.
两弯者肢表比较,把不同于DataBase..table1的记录插入DataBase..table1中即可。
5.最终
DataBase..table1中的记录就是A、B、C、D

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

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


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

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

步骤:


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


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


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

总结:

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

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

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


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

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

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

㈨ sqlserver数据库delete删除后怎么恢复

一、如果是刚刚删除,那么有两方法:
首先用show parameter undo;命令查看当时的数据库参数undo_retention设置。
显示如下:
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1
undo_retention(保持力),10800单位是秒。即3个小时。
修改默认的undo_retention参数设置:
ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;

方法1,通过oracle提供的回闪功能:
exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss'));

set serveroutput on
DECLARE r_temp hr.job_history%ROWTYPE;
CURSOR c_temp IS SELECT * FROM hr.job_history;
BEGIN
OPEN c_temp;
dbms_flashback.disable;
LOOP
FETCH c_temp INTO r_temp;
EXIT WHEN c_temp%NOTFOUND;
insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);
commit;
END LOOP;
CLOSE c_temp;
END;

方法2,insert into hr.job_history
select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
这种方法简单,容易掌握,功能和上面的一样时间为你误操作之前的时间,最好是离误操作比较近的,因为oracle保存在回滚保持段里的数据时间有一定的时间限制由undo_retention 这个参数值决定。

二、如果是删除一段时间了,但你有比较新的数据库备份,就通过备份来恢复。新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。

三、如果删除一段时间了,并且无备份,但是数据在写入表的时候同时会写入其它一些关联表的话,那么就尝试通过写SQL语句从其它表取数据出来insert到被删除的表中。