![](/img/trans.png)
[英]SQL Server: error Msg 156, Level 15, State 1, Line 12 Incorrect syntax near the keyword 'AS'
[英]SQL Server syntax error Msg:156, Level:15, State:1
我正在尝试更改以下存储过程,但是在尝试更改存储过程时遇到语法错误。
消息156,第15级,状态1
关键字“ ELSE”附近的语法错误。 (第24行)
最初,我执行的InsLoginAttempts
错误,但是我纠正了该错误。
Microsoft语言参考似乎没有任何帮助https://msdn.microsoft.com/zh-cn/library/ms182717.aspx
SET ANSI_NULLS ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.LogInUser
(@UserID varchar(50),
@Password varchar(15)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @UserExists varchar(50)
SET @UserExists = (SELECT UserID FROM Users WHERE UserID = @UserID)
DECLARE @CheckPassword varchar(15)
SET @CheckPassword = (SELECT Password FROM Users WHERE UserID = @UserID)
BEGIN
IF @UserExists IS NOT NULL
BEGIN
IF @Password = @CheckPassword
SELECT 'True' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Success';
ELSE
SELECT 'False' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Failed password attempt';
END
ELSE
SELECT 'False' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Failed username and password attempt';
END
END
GO
显然这是语法错误,但是在哪里呢?
编辑:另外,我不知道是否值得注意,但是我还在使用一个名为SQLPro的SQL Server客户端。
您的脚本缺少BEGIN和END
SET ANSI_NULLS ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.LogInUser(
@UserID varchar(50),
@Password varchar(15)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @UserExists varchar(50)
SET @UserExists = (SELECT UserID FROM Users WHERE UserID = @UserID)
DECLARE @CheckPassword varchar(15)
SET @CheckPassword = (SELECT Password FROM Users WHERE UserID = @UserID)
BEGIN
IF @UserExists IS NOT NULL
BEGIN
IF @Password = @CheckPassword
BEGIN
SELECT 'True' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Success';
END
ELSE
BEGIN
SELECT 'False' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Failed password attempt';
END
END
ELSE
BEGIN
SELECT 'False' AS LoggedIn;
EXEC InsLoginAttempts @SPUserID = @UserID, @SPPassword = @Password, @Comment = 'Failed username and password attempt';
END
GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.