当前位置: 首页 > 面试题库 >

如何预览破坏性的SQL查询?

熊烨
2023-03-14
问题内容

在SQL Server Management
Studio中编写破坏性查询(例如DELETE或UPDATE)时,我总是发现自己希望在不实际运行查询的情况下预览查询结果。Access非常方便,您可以执行此操作,但是我更喜欢手工编写我的SQL,可悲的是,Access非常不擅长。

所以我的问题是双重的:

  1. 是否有用于SSMS的附加程序,或提供了具有良好SQL手动编码功能的单独工具,该工具还可以预览破坏性查询的结果(类似于Access)?

  2. 是否有任何“手工”进行预览的技术或最佳做法;例如,以某种方式使用交易?

在我看来,做这种事情从根本上来说很重要,但是我似乎无法通过Google找到任何东西(我可能只是在寻找错误的东西-
我对此事非常无知)。目前,我正在采取一种比较繁琐的方法来对选择/删除/更新行进行注释和注释,并确保进行备份。当然有更好的方法了吗?

有人可以帮忙吗?


问题答案:

我将使用SQL SERVER 2008及以上版本中的OUTPUT子句…

输出子句(Transact-SQL)

就像是…

BEGIN TRANSACTION

DELETE [table] OUTPUT deleted.* WHERE [woof]

ROLLBACK TRANSACTION

INSERT和UPDATE也可以使用“插入”表。MSDN文章涵盖了所有内容。

编辑:

就像在事务中执行SELECT然后DELETE的其他建议一样,除了它实际上一起执行之外。因此,您打开一个事务,使用OUTPUT子句删除/插入/更新,并且在ALSO输出已完成的操作的同时进行了更改。然后,您可以选择回滚或提交。



 类似资料:
  • 我想为我的移动应用程序添加背景,但当我使用“this.props.children”时,eslint说我“必须使用解构道具分配”。为什么我可以分解这些道具? 这是我的密码, 当我使用这个代码时 当我使用这个代码时, 提前感谢您的帮助!

  • SQL 预览 选项卡显示数据库或模式对象的 CREATE 语句及必要的 SQL 语句。 对于一些数据库或模式对象,你可以使用下面的下拉列表来显示当按下 保存 或 另存为 按钮时运行的 SQL。

  • 非破坏性编辑技术 非破坏性编辑允许您对图像进行更改,而不会覆盖原始图像数据,原始图像数据将保持可用状态以备您需要恢复到原始图像数据。由于非破坏性编辑不会移去图像中的数据,因此,当您进行编辑时,不会降低图像品质。可以通过以下几种方式在 Photoshop 中执行非破坏性编辑: 处理调整图层 调整图层可将颜色和色调调整应用于图像,而不会永久性更改像素值。 使用智能对象进行变换 智能对象支持非破坏性缩放

  • 问题内容: 谁能解释,为什么ES6阵列解构会发生以下情况? 问题答案: 正如其他人所说,您缺少分号。但… 谁能解释? 其中 是预期的解构任务 是一个赋值表达式,将数组分配到左侧,并对数组求值 是对数组文字的属性引用 正在使用逗号运算符,计算结果为(是) 如果你想省略分号,让那里的人永远自动插入 可能 需要的话,你将需要把一个在开始每一行的是开头,,,,或```。

  • 问题内容: 从TABLE布局切换到DIV布局以来,一个普遍的问题仍然存在: 问题 :您用动态文本填充DIV,并且不可避免地会有一个超长单词延伸到div列的边缘,使您的网站看起来不专业。 复古 :这 从未 发生过表布局。一个表格单元格总是可以很好地扩展到最长单词的宽度。 严重性 :我什至在大多数主要站点上都 遇到了 这个问题,尤其是在德国站点上,这些站点甚至连“限速”之类的通用词都非常长(“ Ges

  • 我在分布式环境(“微服务”)中使用Protobuf 3和gRPC。 由于缺乏支持的未设置/缺失的值在原型3我得到了以下问题有关的合同可加性。 假设我有服务A和两个由团队B和团队C拥有的消费者服务B和C。 如果我将一个字段(比如布尔值)添加到服务a的契约中,首先它将具有默认值,该值将按原样写入数据库。 然后,B队使用更新后的合约更新服务进行对话,并将“true”作为字段值传递。然后,C队仍然使用旧合