SQL Server查询干运行

时间:2013-11-07 13:50:46

标签: sql sql-server

我运行了大量执行INSERT的查询,在表格中插入SELECTUPDATEALTER,以及在开发这些查询时查询,运行以测试查询的各个部分的中间步骤,可能会更改表或表中的数据。

是否可以执行查询的干运行并让SQL Management Studio为您提供结果,而不实际修改数据或表结构?

在那一刻,我必须备份数据库,运行查询,如果它工作,好,如果它没有,我必须恢复数据库,这可能需要大约一个小时,我试图避免浪费所有这些必须恢复数据库。

2 个答案:

答案 0 :(得分:50)

使用SQL transaction进行更改,然后将其退回。

在执行脚本之前:

BEGIN TRANSACTION;

执行完脚本并完成检查后:

ROLLBACK TRANSACTION;

然后撤消脚本中的每个更改。

注意:请确保脚本中没有COMMIT

答案 1 :(得分:4)

开始事务,执行表操作和回滚,如下所示:

BEGIN TRAN

UPDATE  C
SET column1 = 'XXX'
FROM table1 C

SELECT *
FROM table1
WHERE column1 = 'XXX'

ROLLBACK TRAN

这将回滚自此事务开始以来上次提交以来执行的所有操作。