MSSQL - Try Catch Transaction (Отменяем транзакцию с ошибкой корректно)
MS SQL - по необходимостиНиже приведен пример корректного отмена транзакции при ошибке:
update Params set Value=168 where Param = 'SessionHoursLimit'
PRINT @@TRANCOUNT
BEGIN TRY
BEGIN TRAN
PRINT @@TRANCOUNT
update Params set Value=167 where Param = 'SessionHoursLimit'
select 1/0 -- Если закомментировать эту строку то предыдущая строка выполнится
COMMIT TRAN
END TRY
BEGIN CATCH
if @@TRANCOUNT>0
ROLLBACK TRAN
END CATCH
PRINT @@TRANCOUNT
select * from Params
Если закомментировать строку с ошибочным оператором SELECT 1/0 то предшествующая строка будет выполнена и транзакция успешно завершится, если оставить строку SELECT 1/0 то транзакция отменится полностью, и параметр Value останется таким, каким он был установлен в первой строке скрипта до начала транзакции.
Оставить первый комментарий:
Курсоры в MSSQL - перебор выборки в цикле.
Команды манипулирования данными SELECT, UPDATE, DELETE работают сразу с группами строк. Эти группы, (читать далее...)
556Установка русской кодировки на уже созданную базу данных (смена COLLATION)
Полезный пример изменения кодировки (COLLATION) на уже созданной базе данных. В данном примере устан (читать далее...)
481Чистка логов базы данных MSSQL
Вообще процесс чистки логов должен проходить планово, и следить за этим и настраивать должен професс (читать далее...)
196MSSQL - передача таблицы или списка значений в процедуру ( C# .NET )
Часто бывает необходимость передать за один раз некоторый набор данных в процедуру, в этой публикаци (читать далее...)
160Пример MERGE в MSSQL T-SQL
Простой пример MERGE для TSQL. В примере подразумевается, что мы оперируем двумя одинаковыми по стру (читать далее...)
143