0
SQL Server 2005でこれを実行しています。テーブルがあり、int型の列が1つしかありません。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
「予期しないエラーが発生しました!」と表示されます。結果として。 しかし、私が実際に見ているものは次のとおりです。 varchar値 'a'をデータ型intに変換するときに変換に失敗しました。
私のSQL Serverはトランザクションとして自分のコードを取っていないようです...それは失敗行を打ち、その直後に実行を終了します。
私はここで間違っていますか?