Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从同一个表中的存储过程返回多个数据_Sql_Sql Server 2008_Stored Procedures - Fatal编程技术网

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