Sql 无法创建存储过程。在选择列表中只能指定一个表达式
我想创建一个存储过程,根据用户登录凭据返回特定的整数值。出现以下错误: 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式 这是我的疑问:Sql 无法创建存储过程。在选择列表中只能指定一个表达式,sql,sql-server,stored-procedures,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 nv
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
我怎样才能克服这个问题
IF((SELECT * FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
这将不等于1,它将返回该行的所有字段
换成这个
IF((SELECT count(*) FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
这将不等于1,它将返回该行的所有字段
换成这个
IF((SELECT count(*) FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
请试着给你反馈
IF EXISTS((Select COUNT(1) as Count FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
BEGIN
IF((SELECT COUNT(1) 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
请试着给你反馈
IF EXISTS((Select COUNT(1) as Count FROM SimpleSite.dbo.Users WHERE UserName = @userName AND [Password] = @password)=1)
BEGIN
IF((SELECT COUNT(1) 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
你有两个选择。其中一种方法有什么不同吗?你有两种选择。有什么不同的方法吗?谢谢,伙计。我的错我没看见this@chrisBintCount(*)比Count(1)花费更多的时间。为什么不在本例中使用Count(1)query@A.Goutam-至少在SQL Server 2005之后,这种情况就不再存在了-请参阅“谢谢mate”。我的错我没看见this@chrisBintCount(*)比Count(1)花费更多的时间。为什么不在本例中使用Count(1)query@A.Goutam-至少自SQL Server 2005以来,这种情况一直没有出现-请参阅