Sql 从同一个表中的存储过程返回多个数据
以下是存储过程:Sql 从同一个表中的存储过程返回多个数据,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,以下是存储过程: CREATE PROCEDURE [dbo].[sp_Login] @Email nvarchar(50), @Password nvarchar(50), @UserId uniqueidentifier output, @UserType int output, @IsVerify bit output, @IsPremium bit output AS BEGI
CREATE PROCEDURE [dbo].[sp_Login]
@Email nvarchar(50),
@Password nvarchar(50),
@UserId uniqueidentifier output,
@UserType int output,
@IsVerify bit output,
@IsPremium bit output
AS
BEGIN
SELECT @UserId = UserId FROM Users WHERE Email = @Email AND [Password] = @Password
SELECT @IsVerify = IsVerify FROM Users WHERE Email = @Email AND [Password] = @Password
SELECT @UserType = UserType FROM Users WHERE Email = @Email AND [Password] = @Password
SELECT @IsPremium = IsPremium FROM Users WHERE Email = @Email AND [Password] = @Password
END
我的问题是:有一种方法可以将此参数作为“输出”返回,而无需调用相同的“选择”函数4次。您应该对所有参数使用一个选择,如下所示:
CREATE PROCEDURE [dbo].[sp_Login]
@Email nvarchar(50),
@Password nvarchar(50),
@UserId uniqueidentifier output,
@UserType int output,
@IsVerify bit output,
@IsPremium bit output
AS
BEGIN
SELECT @UserId = UserId,
@IsVerify = IsVerify,
@UserType = UserType,
@IsPremium = IsPremium
FROM Users
WHERE Email = @Email
AND [Password] = @Password
END
您可以使用单个select语句,如
SELECT @UserId = UserId ,
@IsVerify = IsVerify ,
@UserType = UserType ,
@IsPremium = IsPremium
FROM Users WHERE Email = @Email AND Password = @Password