标签: rollback

保存点在 Oracle 中如何工作?

我正在对我的数据库进行非常严肃的操作,我想保证我的数据安全。

不幸的是出了点问题,看:

SAVEPOINT before_foo_update;

CREATE TABLE AUX_FOO as
   SELECT * FROM FOO;

TRUNCATE TABLE FOO;  

ALTER TABLE FOO
  MODIFY(BAR NUMBER(11) NOT NULL);

INSERT INTO FOO
  SELECT * FROM AUX_FOO;

DROP TABLE AUX_FOO;    

ROLLBACK TO SAVEPOINT before_foo_update;
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到一个错误:

ROLLBACK TO SAVEPOINT before_foo_update
Error report:
SQL Error: ORA-01086: savepoint 'BEFORE_FOO_UPDATE' never established
01086. 00000 -  "savepoint '%s' never established"
*Cause:    Trying to roll back to a save point that was never established
Run Code Online (Sandbox Code Playgroud)

现在 FOO 表是空的......并且 AUX_FOO 没有被删除。你知道我做错了什么吗?

oracle migration rollback

1
推荐指数
1
解决办法
6872
查看次数

如何防止sql server中的另一个用户删除sysadmin用户

我在我的服务器上安装了一个遗留应用程序,该应用程序配置为仅与一个用户“sa”一起工作,并且在此应用程序中编写了类似定时炸弹的脚本,只要它找到另一个用户,它就会毫不费力地删除该用户。

我们需要使用另一个应用程序访问数据库,并且“sa”的密码丢失,因此剩下的唯一方法是创建另一个具有系统管理员权限的用户。

但由于脚本删除了所有用户,我不能做任何特别的事情,所以我的问题是:

每次尝试删除我的用户时,如何阻止该脚本或回滚其工作?

trigger sql-server rollback

1
推荐指数
1
解决办法
706
查看次数

mssql 在没有备份的情况下恢复今天所做的更改

应用程序中的错误进行了一些更改,现在我需要在没有备份的情况下回滚

我可以为此使用日志文件吗?

'ROLLBACK' 是另一种选择吗?

信息:

-我的恢复模式设置为简单

-AutoCommit 尚未设置

- 当我尝试使用恢复任务时,它告诉我“没有选择要恢复的备份集”

sql-server rollback

1
推荐指数
1
解决办法
701
查看次数

如果我终止循环 INSERT 查询,它会回滚自循环开始以来的所有插入还是仅回滚最后一次迭代?

如果以下循环查询在循环过程中被终止,是所有插入还是仅当前一个回滚?

DECLARE @LoopId INT = 1;

WHILE (@LoopId < 100)
BEGIN
    INSERT INTO Table2
    SELECT Field1 
    FROM Table1
    WHERE ForeignKeyField = @LoopId

    SET @LoopId = @LoopId + 1;
END
Run Code Online (Sandbox Code Playgroud)

sql-server insert transaction rollback sql-server-2016

1
推荐指数
1
解决办法
279
查看次数

sql 语句“DELETE FROM sales”会做什么?

DELETE FROM sales;
Run Code Online (Sandbox Code Playgroud)

并且如果sales表上没有其他未提交的事务。关于该DELETE陈述,哪项陈述是正确的?

  1. 它删除表中的所有行并且删除的行不能回滚

  2. 它删除所有行以及表的结构

  3. 如果表有主键,它不会删除行

  4. 它删除表中的所有行并且可以回滚删除的行

当然,正确答案在1到4之间。我不知道删除的数据是否可以回滚。

如果有人知道,请帮助我。谢谢。

delete rollback

-3
推荐指数
1
解决办法
302
查看次数