1

这是存储过程:

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 次。

4

2 回答 2

2

您应该对所有参数使用一个选择,如下所示:

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
于 2012-11-19T08:12:39.443 回答
1

您可以使用单个选择语句,例如

        SELECT @UserId = UserId ,
               @IsVerify = IsVerify ,
               @UserType = UserType ,
              @IsPremium = IsPremium 
        FROM Users WHERE Email = @Email AND Password = @Password
于 2012-11-19T08:13:39.477 回答