我运行了很多在表上执行INSERT
's,insert SELECT
' UPDATE
和ALTER
's'的查询,在开发这些查询时,运行的中间步骤用于测试查询的各个部分是否有效,可能会更改表或表中的数据.
是否可以执行查询的干运行并让SQL Management Studio为您提供结果,而无需实际修改数据或表结构?
在那一刻,我必须备份数据库,运行查询,如果它工作,好,如果它不,我必须恢复数据库,这可能需要大约一个小时,我试图避免浪费所有这些时间不得不恢复数据库.
Boh*_*ian 59
Use an SQL transaction to make your changes then back them out.
Before you execute your script:
BEGIN TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
After you execute your script and have done your checking:
ROLLBACK TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
Every change in your script will then be undone.
Note: Make sure you don't have a COMMIT
in your script!
小智 5
开始事务,执行表操作,然后回滚,如下所示:
BEGIN TRAN
UPDATE C
SET column1 = 'XXX'
FROM table1 C
SELECT *
FROM table1
WHERE column1 = 'XXX'
ROLLBACK TRAN
Run Code Online (Sandbox Code Playgroud)
这将回滚自此事务开始以来的最后一次提交以来执行的所有操作。