ice*_*gon 6 t-sql if-statement sql-server-2008
我正在尝试执行以下SQL 2008代码,它说"="和"else"附近有一个问题...我无法理解代码有什么问题
ALTER PROCEDURE dbo.LoginEmp @username NVARCHAR(10),
@password NVARCHAR(10),
@confirm INT output,
@emp_name NVARCHAR(50) output,
@emp_id BIGINT output
AS
IF EXISTS (SELECT @emp_id = emp_id,
@emp_name = emp_name_ara
FROM Employee
WHERE ( emp_username LIKE @username
AND emp_password LIKE @password ))
BEGIN
SET @confirm=1
INSERT INTO EmployeeLog
(log_emp_id,
log_act_id,
log_date,
log_data)
VALUES (@emp_id,
1,
GETDATE(),
-1)
END
ELSE
BEGIN
SET @confirm=0
END
RETURN
Run Code Online (Sandbox Code Playgroud)
不要尝试分配给内部的输出参数EXISTS,然后检查@@rowcount是否找到任何匹配的行。
ALTER PROCEDURE dbo.LoginEmp @username NVARCHAR(10),
@password NVARCHAR(10),
@confirm INT output,
@emp_name NVARCHAR(50) output,
@emp_id BIGINT output
AS
SELECT @emp_id = emp_id,
@emp_name = emp_name_ara
FROM Employee
WHERE ( emp_username = @username
AND emp_password = @password )
IF @@ROWCOUNT = 1
BEGIN
SET @confirm=1
INSERT INTO EmployeeLog
(log_emp_id,
log_act_id,
log_date,
log_data)
VALUES (@emp_id,
1,
GETDATE(),
-1)
END
ELSE
BEGIN
SET @confirm=0
END
Run Code Online (Sandbox Code Playgroud)