是否有任何算法或简单的方法来撤消SQL Server中最后执行的查询。我正在使用C#,我写了一个与SQL Server集成的程序。想像油漆。当我按下" ctrl + z"它回到最后一次操作。
答案 0 :(得分:1)
简短的回答是不,你不能。
正如人们在评论中所说的那样,只有在没有任何准备好的撤销方式的情况下撤消过去的变更的唯一方法只能通过恢复备份来撤消。
关于事务锁定表的评论,这是事实。但是,数据库的任何和所有更改都是由事务完成的。唯一的区别是具有相同最终结果的隐式或显式事务。
因此,出于所有实际目的:
INSERT demo..employees (firstname,lastname)
VALUES ('Joe','Doe')
与此相同:
BEGIN TRANSACTION
INSERT demo..employees (firstname,lastname)
VALUES ('Joe','Doe')
IF 1 = 1
BEGIN
ROLLBACK
PRINT 'Undo'
END
ELSE COMMIT
除非当然第二个块将始终回滚。希望这会有所帮助并获得乐趣!