如何撤消更新函数 SQL Server



>我在列上使用更新语句,现在我想反转它。有没有办法撤消这个?

这是原始数据

Name    Score
John    15
John    15

我使用了这个查询:

UPDATE T1
SET [score] = [score]+'na'
WHERE (name = ‘john’) 

这给了我这个:

Name    Score
John    15na
John    15na

我可以撤消此操作并删除na吗?我希望分数是浮动的。

通过删除添加的na来撤消:

UPDATE T1
SET [score] = LEFT([score],LEN([score])-2)
where  (name = 'john') 

您可以按照TT.所述手动更新到其原始值,也可以ROLLBACK。如果IMPLICIT_TRANSACTIONS设置为 on,则可以通过执行 ROLLBACK TRANSACTION;ROLLBACK。但是,如果EXPLICIT_TRANSACTIONS设置为 on,则需要指定如下所示的BEGIN TRANSACTION...

BEGIN TRANSACTION;
UPDATE T1
SET [score] = [score]+'na'
where  (name = ‘john’);
--if unhappy with results..
ROLLBACK TRANSACTION; 

或者,如果您希望ROLLBACK而不每次都指定BEGIN TRANSACTION,请设置IMPLICIT_TRANSACTIONS(如果尚未打开)。

SET IMPLICIT_TRANSACTIONS ON;
UPDATE T1
SET [score] = [score]+'na'
where  (name = ‘john’);
--if unhappy with results..
ROLLBACK TRANSACTION; 

最新更新