gpt4 book ai didi

sql-server-2008 - 安全删除 sqlserver 中的行,以便您可以回滚提交

转载 作者:行者123 更新时间:2023-12-01 07:19:31 25 4
gpt4 key购买 nike

我昨天问了这个问题 Funky Delete Issue

现在我想知道如何安全删除。

那么我如何使用提交和事务以及语法糖来覆盖我的@$$,因为昨天我愚蠢地删除了 51,000 行。我有一个备份,但我仍然认为 HOLY ^%$# 这太容易了。

那么我如何安全地:

    DELETE FROM bBoxHeader
WHERE bBoxHeader.bHeaderId <> '1099'
-- Ooops meant that to be equal. How do I roll back?

我如何包装它,这样我才不会吹走 51000 行

最佳答案

每当您对生产数据进行未经验证的临时 DML 时,您应该始终将其包装在 BEGIN TRANSACTION 中,并带有后续的 COMMIT 和 ROLLBACK。如果你在没有检查的情况下运行它,然后意识到你搞砸了,你可以回滚它。否则你可以提交它。

BEGIN TRANSACTION;

DELETE ... WHERE ...

-- COMMIT TRANSACTION;
---^^^^^^ if the number of rows affected is correct, highlight this & execute

-- ROLLBACK TRANSACTION;
---^^^^^^^^ otherwise highlight this and execute

请注意,这也可能导致您说 HOLY 无论如何,因为如果您忘记运行回滚或提交,然后去吃午饭或回家过周末,您可能会回到工作中查看您的粉红单。

关于sql-server-2008 - 安全删除 sqlserver 中的行,以便您可以回滚提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17576649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com