首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理在生产环境中执行即席查询?

如何处理在生产环境中执行即席查询?
EN

Stack Overflow用户
提问于 2011-12-12 20:48:06
回答 2查看 103关注 0票数 0

我遇到了一些场景,我必须手动删除或修改生产数据库中的记录。这通常是应用程序无法按预期方式工作的地方。

如何在不意外删除或修改正在处理的表中的所有记录的情况下删除或更新这些记录?

交易是实现这一目标的合适方式吗?

如果有帮助,我正在使用SQL Server Management Studio。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-12 20:58:07

是。事务总是一个好主意。

查看OUTPUT Clause。开始事务,使用output子句执行update或delete语句,验证结果,然后提交事务。

我这样做:

代码语言:javascript
复制
BEGIN TRANSACTION;
DELETE table1
OUTPUT DELETED.*;
ROLLBACK TRANSACTION;

我运行它,花点时间看看结果。然后,在我满意时将最后一条语句更改为COMMIT TRANSACTION,并再次运行它。

也就是说,我几乎会做任何我能做的事情来避免这样做。这让我很害怕。如果您发现自己不止一次这样做,那么可以向您的应用程序添加一些提供此管理功能的内容(或者修复您正在清理的bug )。

票数 3
EN

Stack Overflow用户

发布于 2011-12-12 21:00:10

可以,您可以在测试中使用TRAN

代码语言:javascript
复制
-- Start with Transaction
BEGIN TRAN OperationStart
        -- Delete Items
    DELETE FROM TableName
        -- Where Condition

        -- Update Items
    UPDATE TableName
            SET Column1 = 'some values'
        -- Where Condition

    -- Check/See the changes
    SELECT * FROM TableName
        -- Where Condition  

-- Rollback all test operation/changes
    -- Once you confirm then, COMMIT Transaction
ROLLBACK TRAN OperationStart
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8474532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档