T-SQL, Wie das Ende einer IF-ELSE IF-ELSE block

Wenn ich den unten Verfahren und mit den richtigen Parametern, so dass der Wert -1 ist nicht zurückgekehrt, keiner meiner DML-Anweisungen feuern. Ich vermute, dass es die Behandlung aller meiner DML-Anweisungen als Teil der ELSE block.

SQL Server 2014

Wie beende ich eine IF-ELSE-ELSE-IF-block?

ALTER PROCEDURE [GenerateNumber] (
    @Code VARCHAR(2)
)
AS
BEGIN
    DECLARE @stringConcat VARCHAR = 'X';

    IF @Code = 'KP'
        SET @stringConcat += 'Y';
    ELSE IF @Code = 'RL'
        SET @stringConcat += 'Z';
    ElSE
        -- Return error code and stop processing
        SELECT -1;
        RETURN;

    BEGIN TRY
        -- Various DML statements...

        SELECT @successValue;
        RETURN;
    END TRY
    BEGIN CATCH
        SELECT -1;
        RETURN;
    END CATCH
END

InformationsquelleAutor contactmatt | 2015-09-16

Schreibe einen Kommentar