Я делаю это в SQL Server 2005. У меня есть таблица, есть только один столбец типа int, o вы не можете вставлять в него символ.Простая транзакция не работает на SQL Server 2005
DECLARE @intErrorCode INT
BEGIN TRAN
Update TestTable set A='a' where A=3 --UPDATE TO CHAR, FAIL
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
END
Ожидается, что произойдёт непредвиденная ошибка! в результате. Но я действительно вижу: Не удалось преобразовать при преобразовании значения varaar 'a' в тип данных int.
Похоже, что мой SQL Server не воспринимает мой код как транзакцию вообще ... Он попал в строку сбоя и сразу после этого прекратил работу.
Что я здесь делаю неправильно?