sql-server-2008 - T-SQL if 语句错误

标签 sql-server-2008 tsql if-statement

我正在尝试执行以下 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 

最佳答案

而不是尝试分配给 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

关于sql-server-2008 - T-SQL if 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586602/

相关文章:

java - 在 Java 中检查三个或更多字符串的相等性

ios - 我在 Swift 中的 if 语句无法正常工作

sql-server-2008 - 为 SQL Server 2008 创建用户?

sql - 删除作为另一个表的外键的主键行

sql-server - # T-SQL sql server 2008 2005 中的 ifdef 类型条件编译

sql-server - 更新 : Support multiple row updates 时的 MSSQL 触发器

sql - t-sql GROUP BY 和 COUNT,然后包含 COUNT 中的 MAX

sql-server - T-SQL 条件 AND 语句

if-statement - 为什么 if(not nil) 给我一个 ArgumentError?

sql - 使用 SQL Server 2008 计算列中存在的组数