当前位置:首页 » 编程语言 » sql语句写错把数据库全改了
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句写错把数据库全改了

发布时间: 2022-08-01 05:32:10

㈠ 关于游戏 sql数据库的修改

摘要 您好,1

㈡ 今天用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 sever 刚一不小心按下了update 所有表都改了这么办

如果你的数据库开启了日志功能的话 可以使用sqlexplorer进行恢复。
另外看一下这个有没有帮助
http://www.cnblogs.com//archive/2011/10/15/sql_server_recover_deleted_records.html

㈣ sql数据库误改怎样恢复

1, 如果你有比较新的备份文件,可以将备份恢复到另外一台机器上,然后将对应表导入到当前库;
2,如果你的日志文件还没有被覆盖,将日志文件出去,先备份一下,找个读取sqlserver日志的工具,从日志文件中逐条记录恢复。

㈤ 在sql中执行错了语句,导致数据丢失,如何恢复急,在线等...!

把备份数据库恢复到另外一个数据库,再利用旧资料库把user_info的资料恢复.之后再做你要做的修改.

不要跟我说你没有资料库备份哦.

用日志恢复也需要备份文件的.而且,日志主要提供给系统使用,操作员并不好使用啊.

㈥ 为什么我执行代码后会把数据库里的所有数据都修改了

没有加条件 后面加个where 主键=多少
例如
String sql="update student set name='"+stu.getName()+"',age="+stu.getAge()+",address='"+stu.getAddress()+"' where id=1";

㈦ SQL问题:本想执行update修改一条数据的,结果忘记写where条件了。结果那个表的那一列都改了。能改回来么

修改之前没进行备份数据? 可怜的娃。。。
方法一:
数据还原到指定时间点的处理示例:
--创建测试数据库
CREATE DATABASE Db
GO
--对数据库进行备份
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT
GO
--创建测试表
CREATE TABLE Db.dbo.TB_test(ID int)
--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
WAITFOR DELAY '00:00:01'
GO
--假设我们现在误操作删除了 Db.dbo.TB_test 这个表
DROP TABLE Db.dbo.TB_test
--保存删除表的时间
SELECT dt=GETDATE() INTO #
GO
--在删除操作后,发现不应该删除表 Db.dbo.TB_test
--下面演示了如何恢复这个误删除的表 Db.dbo.TB_test
--首先,备份事务日志(使用事务日志才能还原到指定的时间点)
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT
GO
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY
GO
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
DECLARE @dt datetime
SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间
RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt
GO
--查询一下,看表是否恢复
SELECT * FROM Db.dbo.TB_test
/*--结果:
ID
-----------
(所影响的行数为 0 行)
--*/
--测试成功
GO
--最后删除我们做的测试环境
DROP DATABASE Db
DROP TABLE #

方法二:
用日志工具Log Explorer
步骤:
1、查看日志
a、打开log explorer,选择菜单File--> attach log file
b、在Log File Selection窗口中,填写连接到要恢复数据的数据库服务器机器名、数据库登录ID及密码,然后点击 "Connect "按钮。
c、若连接成功,则窗口左边树将显示命令菜单,这时我们点击Browser下的View Log命令,此时窗口右边则出现该数据库的Log。
2、恢复数据库
这时您只要选择您要恢复对事件点,右键点击选择 "undo transation "命令,保存T-SQL代码,然后在查询分析器中执行该T-SQL代码

㈧ 我想更新数据库的一个字段,结果全部改了,想问一下,sql语句咋写啊

WHER QAID=QAID 就是所有的都改
你别把变量名取的和列名一样啊

㈨ 怎样恢复SQL脚本造成的数据库更改

那你就看添加了那些表那些数据把他们删掉就可以了

㈩ SQL,数据库批量修改。这么写错在哪儿了

哪也没错,用in的写法本身效率就低
你在ac里执行的快,是因为数据没导全吧?
可以用下边的写法试验一下
update A set A1= (select 1000 from B where a.id=b.id and b.id<>0)