无法创建存储过程.在选择列表中只能指定一个表达式

Nil*_*era 0 sql sql-server stored-procedures

我想创建一个存储过程,以根据用户登录凭据返回特定的整数值.发生以下错误:

当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.

这是我的查询:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE Login 
    -- Add the parameters for the stored procedure here
    @userName nvarchar(100),
    @password nvarchar(100)
AS
BEGIN

    SET NOCOUNT ON;

   IF((Select COUNT(*) as Count FROM SimpleSite.dbo.Users WHERE UserName = @userName)=1)
      BEGIN
       IF((SELECT * FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
       -- valid login 
       RETURN 1
       ELSE       
       -- wrong password      
       RETURN 2
      END           
   ELSE
       -- No account associated with the username 
       RETURN 3          
END
GO
Run Code Online (Sandbox Code Playgroud)

我怎样才能克服这个问题?

Chr*_*int 5

   IF((SELECT * FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
Run Code Online (Sandbox Code Playgroud)

这不会等于1,它将返回该行的所有字段.

把它改成这个......

   IF((SELECT count(*) FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
Run Code Online (Sandbox Code Playgroud)