Tsql 不正确的语法输入到IF。。。ELSE条款

Tsql 不正确的语法输入到IF。。。ELSE条款,tsql,Tsql,我有一个非常简单的查询,如: BEGIN TRY BEGIN TRAN; DECLARE @CurrentPassword VARCHAR(255) = (SELECT TOP 1 [Password] FROM Employee WHERE @EmpGuid = EmpGuid) IF (@Pas

我有一个非常简单的查询,如:

BEGIN TRY
BEGIN TRAN;
    DECLARE @CurrentPassword VARCHAR(255) = (SELECT TOP 1 [Password] 
                                             FROM Employee 
                                             WHERE @EmpGuid = EmpGuid)
    IF (@Password = @CurrentPassword)
        UPDATE [Employee] 
        SET [Password] = @NewPassword 
        WHERE @EmpGuid = EmpGuid

    SELECT 1;
    ELSE
        SELECT 2;

    COMMIT TRAN
END TRY
BEGIN CATCH
    ROLLBACK TRAN
END CATCH
但是我真的不知道为什么在我的
else
子句中我得到了

“ELSE”附近的语法不正确

我做错了什么?关于如果您想在
后面有多个语句,如果
,则必须使用一个
开始。。。。结束
块-如下所示:

BEGIN TRY
BEGIN TRAN;
    DECLARE @CurrentPassword VARCHAR(255) = (SELECT TOP 1 [Password] 
                                             FROM Employee 
                                             WHERE @EmpGuid = EmpGuid)
    IF (@Password = @CurrentPassword)
    BEGIN     --- you need a *BEGIN* here!!!
        UPDATE [Employee] 
        SET [Password] = @NewPassword 
        WHERE @EmpGuid = EmpGuid

        SELECT 1;
    END        --- and the *END* for your new *BEGIN*
    ELSE
        SELECT 2;

    COMMIT TRAN
END TRY
BEGIN CATCH
    ROLLBACK TRAN
END CATCH

明确使用
begin。结束

BEGIN TRY
BEGIN TRAN
    DECLARE @CurrentPassword VARCHAR(255) = (SELECT TOP 1 [Password] 
                                             FROM Employee 
                                             WHERE @EmpGuid = EmpGuid)
    IF (@Password = @CurrentPassword)
    BEGIN

        UPDATE [Employee] 
        SET [Password] = @NewPassword 
        WHERE @EmpGuid = EmpGuid

    SELECT 1
    END

    ELSE

    BEGIN
        SELECT 2
    END

    COMMIT TRAN
END TRY
BEGIN CATCH
    ROLLBACK TRAN
END CATCH
也许你应该多读一点。要定义语句块,请使用流关键字BEGIN和END的控件