问题:
通常情况下,您可以撤消带有回滚的sql命令。
BEGIN TRY
BEGIN TRANSACTION
/* run all your SQL statements */
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
我现在的问题:
如果“一个”这样做了
UPDATE TABLE_X SET FIELD_X = 'bla'
GO
在SSMS中(注意最后的 go)并忘记指定 WHERE 子句,是否有可能(以及如何)回滚 SSMS 在其中执行此命令的隐式事务(最后带有 go 的语句在事务中隐式执行) ?
注意:
我没有这样做,但我的一个同事几天前做了(没有去)。
我解除了他造成的损坏(幸运的是,我在他这样做之前 0.5 小时做了备份),但对于未来,知道这一点会很好,因为这也发生在我身上一次。