Я только что обнаружил идею тестирования сохраненной процедуры, вызвав ее из пары BEGIN TRAN t1
ROLLBACK TRAN t1
.
Я немного боюсь этого. Это обычная практика? Это надежный?
Моей целью здесь является краткий тест хранимого процесса, который считывает и обновляет 2 базы данных (тот же сервер). SP не выполняет никаких усечений, но использует табличную переменную в сочетании с оператором INSERT.. OUTPUT
.
Объем будет низким (менее 1000 затронутых линий). БлагодаряИспользование транзакции отката для тестирования
ответ
Есть несколько вещей, которые могут пойти не так:
- прок может сделать свои собственные управления транзакциями
- Это может выполнить без transactable заявления как
CREATE DATABASE
- Это может иметь погрешность , в результате чего транзакция автоматически откатывается. Если процедура затем продолжает работать в каком-то смысле, это может написать материал за пределами сделки
- XACT_ABORT может быть использовано непоследовательно, в результате чего ранее упомянутого эффекта
В общем, это хороший метод, хотя.
Truncate транслируется, кстати.
upvoted и +1 для усечения, потому что таблица обрезания мифа не может быть откат – jean
@jean, поэтому я и сказал это. Я не знаю, откуда этот миф. DROP TABLE также транслируется. Все TRUNCATE делает, устанавливает корень b-дерева на пустую страницу и освобождает оставшуюся часть от фиксации. Корень b-дерева можно легко откатть. – usr
- 1. Использование транзакции для отката сохраняет
- 2. Вставка транзакции-отката SQL
- 3. отката транзакции в OSGi
- 4. Ошибка отката транзакции
- 5. Пример транзакции транзакции Mysql и пример отката
- 6. отката транзакции в реактивных приложениях
- 7. Порядок отката транзакции .NET TransactionScope
- 8. Выполнение транзакции отката в WP7
- 9. Использование FMDB для отката транзакций в Swift
- 10. Как предотвратить JPA от отката транзакции?
- 11. Заявление Откат против отката транзакции в MySQL
- 12. Способы отката «мягкой» транзакции в Java
- 13. вызов транзакции транзакции Hibernate в транзакционном методе отката
- 14. Запрос транзакции отката не имеет соответствующей транзакции начала
- 15. Сбой отката транзакции JDBC при закрытом соединении
- 16. отката не произошло с сохранением транзакции
- 17. Весна компиляции времени сплетение транзакции отката
- 18. Предотвращение совершения транзакции с отметкой отката
- 19. Sql отката транзакции от другой формы
- 20. Oracle - использование сегмента отката
- 21. Исключение транзакции commit throwing: транзакция только для отката
- 22. Как использовать RSpec для тестирования блока транзакции
- 23. Использование WLST для отката управляемого сервера?
- 24. Использование несущей для загрузки PDF, вызывающего ошибку транзакции отката после отправки
- 25. Методы тестирования Rspec в транзакции
- 26. Использование DiskVolumeInfo (API отката кластера)
- 27. Спящие транзакции не откатываются во время тестирования
- 28. Использование API SpringRestGraphDatabase для работы в транзакции
- 29. Использование request.adapters.HTTPAdapter для тестирования
- 30. Использование Erlang для тестирования.
Я делаю это часто и никогда не имел проблемы с ним. – JohnD
@JohnD: Спасибо. Я просто «раскалывал» это, выглядит как хороший тайм-брейк –
Насколько это возможно, да. Он просто показывает, что хранимые процедуры не вызывают ошибок. Это не показывает, что они поступают правильно. Если бы они ничего не сделали, они бы прошли эти тесты. –