@@ERROR Objekt auslesen (TSQL)

Ich bekomme immer wieder die Fehlermeldung, dass ich den Wert 0 nicht aus dem @@ERROR objekt auslesen kann!

Was könnte das für ein Fehler sein?

Code:
/****** Objekt: Gespeicherte Prozedur dbo.sp_KundenHinzufuegen ******/
CREATE PROCEDURE [sp_addKunde]
(@AnredeID SMALLINT,
@Kundenname NCHAR(50),
@Straße NTEXT,
@PLZID SMALLINT)
AS
/* In dieser gespeicherte Prozedur werden neue Kunden angelegt!
Dies geschieht in der SP weil ich damit für keinen Benutzer die Tabelle feigeben
muss und somit weniger Risiko für Fehler besteht! */

/*Hier werden die Variablen deklariert die der Benutzer nicht eingeben kann aber wichtig für das System sind! */
DECLARE @DatErstellung DATETIME
DECLARE @DatLetzterAenderung DATETIME
DECLARE @BenutzerAenderung SMALLINT
DECLARE @ERROR INT

/* Es wird das Aktuelle Datum eingestellt! */
SET @DatErstellung = CONVERT(CHAR(13), CURRENT_TIMESTAMP)
SET @DatLetzterAenderung = CONVERT(CHAR(13), CURRENT_TIMESTAMP)

/*Hier wird der aktuelle Benutzer der den Kunden hinzufügen will ermittelt! */
SET @BenutzerAenderung = (SELECT PersonalID
FROM [tbl_personal]
WHERE Benutzername = CONVERT(CHAR(30),SYSTEM_USER))

IF @BenutzerAenderung NULL
BEGIN
BEGIN TRANSACTION KundenHinzufuegen
/* Jetzt wird der Kunde in die Tabelle geschrieben! */
WITH MARK ‚KundenHinzufuegen‘
INSERT INTO [tbl_kunden]
(AnredeID, KundenName, Straße, PLZID, DatErstellung, DatletzterAenderung, BenutzerAenderung)
VALUES
(@AnredeID, @Kundenname, @Straße, @PLZID, @DatErstellung, @DatletzterAenderung, @BenutzerAenderung)
IF @@ERROR