簡體   English   中英

從同一個表中的存儲過程返回多個數據

[英]return multiple data from stored procedure from the same table

這是存儲過程:

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 @UserId = UserId ,
               @IsVerify = IsVerify ,
               @UserType = UserType ,
              @IsPremium = IsPremium 
        FROM Users WHERE Email = @Email AND Password = @Password

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM