LDF-файл содержит в себе достаточно информации, чтобы воспроизвести или отменить изменения или, даже, восстановить базу данных на определённый момент времени.
Чаще всего, боржоми уже поздно пить.
Ну можно выяснить, какой режим восстановления установлен SELECT name,recovery_model_desc FROM sys.databases
и поздравить себя с переходом во вторую категорию из трёх:
1. Люди, которые ещё не делают бэкапы
2. Люди, которые уже делают бэкапы
3. Люди, которые уже проверяют сделанные бэкапы.
А вообще на рабочей базе любой апдейт должен начинаться с BEGIN TRANSACTION
Я снова спрошу как вам поможет транзакция в студии ? То есть сделали запрос, пока висит коннекшкн выбираете данные, если что то неверно делаете ролбэк? Такая логика?
Владимир Коротенко, Ну, примерно да.
Данные можно и не выбирать. По собственному опыту знаю, что ошибку очень часто замечаешь на секунду позже, чем нужно. Здесь rollback и пригодится.
Как-то запустил update, где вообще почему-то... ну не знаю, то ли отвлекло что-то, то ли задумался, вообще не было where. Осознание этого факта пришло прямо в момент запуска запроса. Ощущение было не из приятных. Спасла меня только опечатка в имени таблицы, и вернулась ошибка.
Уроков я вынес несколько.
1. Запрос надо писать, начиная с where
2. Вместо update/delete с тем же where сначала написать select
cicatrix, что кстати мешает держать 2 базы? Продовскую модифицировать только через миграции без рук. А а на стейдже извращаться как хочешь и при необходимости накатывать бэкап?
Что вам сказать? Лень, излишняя самоуверенность, очень редкие случаи, когда надо что-то сделать через SSMS, жадность...
Ну что мешает всё всегда делать "по фен шую". Реальный мир, наверное.