Bonjour,
Une réponse tardive...
@@error est valorisée après chaque instruction (dans ton code après le PRINT @@ERROR, @@ERROR vaut 0 s'il s'est bien passé).
Il faut sauvegarder @@Error dans une variable locale
SELECT @vErr_locale = @@error
et travailler ensuite avec cette variable.
IF @vErr_locale <> 0 PRINT @vErr_locale
Il s'agit d'une piste. Il y a pas mal d'infos dans l'article suivant (en anglais) :
[ Lien ]