加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何“测试”修改数据的sql查询,即在提交sql serv

发布时间:2020-12-12 16:29:56 所属栏目:MsSql教程 来源:网络整理
导读:我使用其他SQL工具,有些允许我在提交之前查看威胁性查询的输出.我喜欢这两步过程(所以我可以仔细检查我没有做坏事). 有没有办法在SQL Server 2008 R2中“执行”一个查询,查看受影响的行的输出,然后选择接受或丢弃提交? 编辑: 我还发现使用OUTPUT子句询问使
我使用其他SQL工具,有些允许我在提交之前查看威胁性查询的输出.我喜欢这两步过程(所以我可以仔细检查我没有做坏事).

有没有办法在SQL Server 2008 R2中“执行”一个查询,查看受影响的行的输出,然后选择接受或丢弃提交?

编辑:

我还发现使用OUTPUT子句询问使用不同答案的另一个问题.

How do I preview a destructive SQL query?

解决方法

是的,这是可能的.您可以使用会话选项SET IMPLICIT_TRANSACTIONS ON或创建如下所示的显式事务.
BEGIN TRAN

UPDATE YourTable 
SET foo=1
 /*To Review Changes can use OUTPUT clause here...*/
OUTPUT INSERTED.*,DELETED.*
WHERE bar=2


/*... or a SELECT against the table*/
SELECT *
FROM YourTable
WHERE bar=2


-- Execute the COMMIT or ROLLBACK commands when ready

但是,您应该注意,您的开放事务将持有锁,直到事务完成,这可能会阻止其他事务,因此在任何多用户环境中都应谨慎使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读