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的控件