Rückgabe Fehlermeldung von gespeicherten Prozeduren

Die Frage sollte Recht einfach sein, aber ich kann nicht herausfinden, die Antwort noch, warum meine gespeicherten Prozedur nicht funktioniert.

CREATE PROCEDURE spTest_Delete
@ID int
AS
    begin tran
        declare @err int
        declare @errMesage nvarchar(max)
        set @errMesage = ''
        set @err = 0

        delete from Test
        where ID = @ID

        set @err = @@ERROR
        set @errMesage = ERROR_MESSAGE()

        if @err = 0 
           commit tran
        else 
        begin
            RAISERROR(N'Could not delete !Error nr: %d. Message: %s', 1, 16, @err, @errMesage)
            rollback tran
        end

Dieses Verfahren läuft ok, aber im Falle von FK-constraint auf die delete Aussage läuft es in einen Fehler (was gut ist) und ich möchte, um den Fehler abzufangen.

Msg 547, Ebene 16, Status 0, Prozedur spTest_Delete, Zeile 12

Die DELETE-Anweisung in Konflikt mit der REFERENCE-Einschränkung
"FK_TEstFK_Test". Der Konflikt ist aufgetreten in Datenbank "Test", Tabelle
"dbo.Test", Spalte 'ID'. Die Anweisung wurde beendet.

Konnte nicht gelöscht werden!

Fehler nr: 547. Nachricht: (null) Msg 50000, Ebene 1, Status 16

Bekomme ich immer einen null-Wert für meine variable message, auch wenn die delete - Anweisung gibt eine Fehlermeldung aus.

InformationsquelleAutor CiucaS | 2015-10-22
Schreibe einen Kommentar