我遇到了一些场景,我必须手动删除或修改生产数据库中的记录。这通常是应用程序无法按预期方式工作的地方。
如何在不意外删除或修改正在处理的表中的所有记录的情况下删除或更新这些记录?
交易是实现这一目标的合适方式吗?
如果有帮助,我正在使用SQL Server Management Studio。
发布于 2011-12-12 20:58:07
是。事务总是一个好主意。
查看OUTPUT Clause。开始事务,使用output子句执行update或delete语句,验证结果,然后提交事务。
我这样做:
BEGIN TRANSACTION;
DELETE table1
OUTPUT DELETED.*;
ROLLBACK TRANSACTION;我运行它,花点时间看看结果。然后,在我满意时将最后一条语句更改为COMMIT TRANSACTION,并再次运行它。
也就是说,我几乎会做任何我能做的事情来避免这样做。这让我很害怕。如果您发现自己不止一次这样做,那么可以向您的应用程序添加一些提供此管理功能的内容(或者修复您正在清理的bug )。
发布于 2011-12-12 21:00:10
可以,您可以在测试中使用TRAN
-- 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 OperationStarthttps://stackoverflow.com/questions/8474532
复制相似问题