У меня есть 8 таблиц. Один родитель и 7 детей. Внутри цикла while и удалите из таблицы один за другим. Если какая-либо ошибка во время цикла сводится к откату транзакции. Возможно ли это внутри цикла while.обработка ошибок внутри цикла while
Пример:
объявляет @count INT, INT @intFlag
начинает попробовать множества @count = (SELECT COUNT (ID), где из MyTable [дата] между GETDATE() - 1 и (GETDATE)) , если @count> 0
начинают множество @intFlag = 1
начать транзакцию
while (@intFlag <= @Count)
begin
update MyTable1
set column1 = 1
where [Date] between getdate()-1 and getdate();
update MyTable2
set column2 = 1
where [Date] between getdate()-1 and getdate();
set @intFlag = @intFlag + 1
end;
совершает
конца
конца попробовать
начать добычу если @@ TRANCOUNT> 0 Откат конца поймать
Если какая-либо ошибка в процессах ее откатить все дочерние таблицы сделка
Запустите транзакцию перед циклом. Если вы можете использовать try-catch для обнаружения ошибки, включите цикл внутри блока try-catch с транзакцией commit в конце блока try и отката внутри блока catch – Sach