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

如何删除或更新这些记录,而不会意外删除或修改正在使用的表中的所有记录?

交易是否是实现此目标的合适方法?

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

===============>>#1 票数:3 已采纳

是。 交易总是一个好主意。

签出OUTPUT子句 开始事务,使用输出子句执行更新或删除语句,验证结果,然后提交事务。

我这样做:

BEGIN TRANSACTION;
DELETE table1
OUTPUT DELETED.*;
ROLLBACK TRANSACTION;

我运行该程序,花时间查看结果。 当我满意时,将最后一条语句更改为COMMIT TRANSACTION ,然后再次运行它。

也就是说,我将尽一切可能避免这样做。 吓到我了。 如果您发现自己不止一次执行此操作,请向您的应用程序添加一些东西,以提供此管理功能(或修复您要清理的错误)。

===============>>#2 票数:2

是的,您可以在测试中使用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 OperationStart

  ask by gcso translate from so

未解决问题?本站智能推荐:

3回复

发展到分期生产[关闭]

我拥有的工具:SQL Server数据库/ SSIS / SSAS / SSRS Dev / Stage / Prod的不同服务器Dev / Stage / Prod的不同数据库(SSMS / SSAS) 目标:在开发环境中创建一些东西。 将它传递给分期。 验证后,将其传递给生产。
2回复

实体框架和不同的环境(开发/生产)

我最近使用ASP.NET MVC开展了一个新项目,我对这项技术并不十分熟悉。 我还处于早期阶段,我即将开始自学如何使用Entity Framework来处理我的数据访问代码。 我只是在艰难的时间制作软件/工具/功能可以做什么的头或尾,但我认为我在EF的正确轨道上。 我正在寻找能够看到我
1回复

为大型生产数据库创建开发环境

有一个运行SQL Server的Windows 2008 Server作为大数据解决方案。 (生产)数据库约为1TB。 目前,所有测试和开发都针对该生产服务器。 有人告诉我,复制数据库或备份数据库对于开发数据库是不可能的,因为没有多余的服务器可以使用。 由于数据库很大,因此它的大小似
1回复

从未知的编号和列名(从动态PIVOT查询中)插入临时表

我有一个动态查询,如下所示。 @ColumnNames参数具有此数据透视表正在使用的多个列。 @ID和@Apartment_ID来自插入参数。 将获得如屏幕截图所示的结果。 从@ColumnNames获得的列(91,92,..)不固定: 我想将此动态结果集插入到临时表中以进
2回复

SQL删除临时表[关闭]

在存储过程中删除表是一种更好的做法? 样品A. 或样品B.
1回复

在SQL Server中查看临时表或临时变量

我想了解使用视图而不是SQL Server中存储过程中的临时表的性能优缺点。 我知道两者之间的区别(例如临时表可以提供过时的数据等),但我无法从任何角度从性能角度找到任何信息。
1回复

如何在一个查询中合并两个SQL查询

我有两个彼此不相关的查询,第一个查询返回4列,第二个查询仅返回1列。 那么如何结合呢? 查询1- 查询2- 当前查询 基本上,我想从postlist返回所有记录,无论commentlist表是否有任何相关注释。 这是一个数据库设计
1回复

需要批量插入到临时表。 它不适用于表变量,因此如何在函数中执行此操作?

我有一个旧的SQL脚本,当前可以通过将其加载到SQL Server Management Studio中并运行来运行。 我想通过将其转换为存储在数据库本身中的一系列函数来进行清理。 当前代码执行的基本步骤序列如下: (几百万条SQL逻辑) 创建一个临时表 从CSV
3回复

当我有一个很大的ID列表时,如何在SQL Server中创建临时表

我有一个原始ID列表,我应该放入临时表。 我不确定它在SQL Server中是如何工作的: 我知道一般格式: 我已经有一个大约30个PID的列表,我将使用它。 他们看起来像这样: 我该怎么做呢? 谢谢!
1回复

使用每x分钟更新一次的临时表消除查询

我有一个用户表 拥有在线用户列表而不对每个用户请求进行痛苦查询的最佳方法是什么? 让我们说有可能每1分钟有一个cron,并通过这个来创建一个临时表,其中包含最后一分钟最后一次活动的独特user_id? 主要目标是比这个查询更快