【发布时间】:2015-05-01 17:59:17
【问题描述】:
我正在使用 SQL Server 2008,并尝试先运行 SELECT COUNT。一旦检查计数是否等于 0,我需要替换特定参数的值。如果计数为 1,我需要从表中获取值。目前这是我的脚本:
CREATE PROCEDURE [dbo].[csp_LoginAuthentication]
@employeeid VARCHAR (20),
@password VARCHAR (20),
@accountstatus INT OUT,
@logincount INT OUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @rowCnt INT
SELECT @rowCnt = (SELECT COUNT(*)
FROM strato_blueapplesmis.dbo.app_login
WHERE 1 = 1
AND employee_id = @employeeid
AND password = @password)
IF @rowCnt = 0
BEGIN
SET @accountstatus = 2
SET @logincount = 0
END
ELSE
BEGIN
SELECT
@accountstatus = account_status,
@logincount = logincount
FROM
strato_blueapplesmis.dbo.app_login
WHERE
1 = 1
AND employee_id = @employeeid
AND password = @password
END
END
END
我收到以下错误:
消息 102,级别 15,状态 1,过程 csp_LoginAuthentication,第 41 行
'END' 附近的语法不正确。
请帮忙,我真的很感谢大家的建议和反馈,我不太确定我是否走在正确的轨道上,我觉得我有点迷路了。
【问题讨论】:
-
删除最后一个
END,因为你太多了。 -
@Gserg:谢谢,这解决了问题!
-
您不应该以纯文本形式存储密码。密码应该散列和加盐。
标签: sql-server sql-server-2008 stored-procedures parameters