如何"测试"修改数据的SQL查询,即在提交sql server 2008之前查看输出?

psy*_*nse 18 sql-server sql-server-2008-r2

我使用过其他SQL工具,有些允许我在提交之前查看威胁查询的输出.我喜欢这个两步过程(所以我可以仔细检查一下,我没做坏事).

SQL Server 2008 R2中是否有一种方法可以"执行"查询,查看受影响行的输出,然后选择接受还是丢弃提交?

编辑:

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

如何预览破坏性SQL查询?

Mar*_*ith 27

是的,这是可能的.您可以使用会话选项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
Run Code Online (Sandbox Code Playgroud)

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