create table test1 as select * from dba_objects; create table test2 as select * from dba_objects; create unique index test1_idx1 on test1(object_id); select * from test1; create table test3 as select object_id,object_name from test1 update test1 set
一个存储过程中多个更新操作,后面的更新操作出现异常,如果不手动回滚前面修改的数据是不会自动撤销的! BEGIN TRY BEGIN TRAN -- ..... COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN ) SELECT @ErrorMessag = Error_message() ,,,@ErrorMessag); END CATCH 另参考: http://msdn.microsoft.com/zh-cn/library/ms178592.as
下面直接上代码(copy到你的数据库里面直接就可以运行): CREATE PROCEDURE [dbo].[SP_UPDATE_LOG] ) AS BEGIN SET NOCOUNT ON; IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @TABLENAME AND TYPE = 'U' ) BEGIN PRINT'ERROR:not exist table '+@TABLENAME RETURN END IF (@TABLENAME L
线下测试数据误操作,回滚攻略--把数据捞出来,这个时间自己设置--表名一定要是:xx_tbd日期 CREATE TABLE user_tbd0718ASselect * from user as of timestamp to_timestamp('2013-8-12 17:40:00','yyyy-mm-dd hh24:mi:ss');--清空原有表DELETE FROM user;--把捞出来的数据,填回去INSERT INTO user SELECT * FROM user_tbd071
如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的.尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围.如下面的语句,一着急我差点把cartid 忘了,要是在Production执行影响就大了. BEGIN TRANSACTION and modifieddate > '2014-08-07' order by modifieddate desc ROLLBACK TRANSACTION 下面语句实现begin tra
事物作用的impl类这样写的 @Override public int updateReturnAll(int item, int status, int idUser) { // TODO Auto-generated method stub try { int updateReturnAll = itemMapper.update****(); if(updateReturnAll>0){ Map<String, Object> map=new HashMap<String,O
作为DBA,细心.沉稳是首要的基本素质.不过总有那么一会心烦意乱或者开发同学出现误操作之类的...这里模拟一个误update操作,然后恢复. 如果开发同学有误操作之后最好先别乱动生产环境,需要记录几个信息给DBA同学来恢复数据. 1:binlog_format.autocommit.binlog位置.误操作的时间点 mysql> SHOW VARIABLES LIKE '%binlog_format%'; +---------------+-------+ | Variable_name | V
使用配置文件properties进行连接数据库 首先创建一个file自定义文件名,但是后缀名必须改为.properties(不分大小写):如config.properties: 然后双击config.properties进行编辑:此文件数据是根据键值对来存储的:我们可以把连接数据库的一些连接字符串存储在此文件里:然后用的时候直接读配置文件,到时候更换的时候方便移植和修改. name
rollback是针对事务的,你如果没有在执行语句之前开启事务,那么无法rollback,建议你还是想别的办法吧,事务语句如下(sqlserver的给你借鉴):--开启事务begin tran --执行操作update Accounts_UsersExp set TelPhone=123456 where userid=14--执行错误事务回滚rollback--如果正确进行事务提交commit可以勾选一句执行一句,但是commit了就不能rollback