Сухой запуск запроса SQL Server
Я запускаю много запросов, которые выполняют INSERT
, вставляют SELECT
, UPDATE
и ALTER
в таблицы, а при разработке этих запросов - промежуточные шаги, которые выполняются для проверки того, что различные части работы запроса, потенциально изменить таблицу или данные в таблице.
Возможно ли выполнить сухой запуск запроса и предоставить SQL Management Studio данные о том, какими будут результаты, без фактического изменения данных или структуры таблицы?
В тот момент мне нужно создать резервную копию базы данных, запустить запрос, если он работает, хорошо, если это не так, мне нужно восстановить базу данных, которая может занять около часа, и я попытаюсь избежать траты все это время необходимо восстановить базы данных.
Ответы
Ответ 1
Используйте транзакцию SQL, чтобы внести изменения, а затем отмените их.
Перед тем, как выполнить script:
BEGIN TRANSACTION;
После выполнения script и проверки:
ROLLBACK TRANSACTION;
Каждое изменение в вашем script будет отменено.
Примечание. Убедитесь, что у вас нет COMMIT
в script!
Ответ 2
Начните транзакцию, выполните операции таблицы и откат, как показано ниже:
BEGIN TRAN
UPDATE C
SET column1 = 'XXX'
FROM table1 C
SELECT *
FROM table1
WHERE column1 = 'XXX'
ROLLBACK TRAN
Откат всех операций, выполняемых с момента последнего фиксации с начала этой транзакции.