Membership分页存储过程

本文介绍了一个SQL Server存储过程,用于分页获取指定应用程序下的所有用户信息,包括用户名、邮箱等详细数据。
ContractedBlock.gifExpandedBlockStart.gifCode
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[aspnet_Membership_GetAllUsers]
    @ApplicationName       nvarchar(
256),
    @PageIndex             
int,
    @PageSize              
int
AS
BEGIN
    DECLARE @ApplicationId uniqueidentifier
    SELECT  @ApplicationId 
= NULL
    SELECT  @ApplicationId 
= ApplicationId FROM dbo.aspnet_Applications WHERE LOWER(@ApplicationName) = LoweredApplicationName
    IF (@ApplicationId IS NULL)
        RETURN 
0


    
-- Set the page bounds
    DECLARE @PageLowerBound 
int
    DECLARE @PageUpperBound 
int
    DECLARE @TotalRecords   
int
    SET @PageLowerBound 
= @PageSize * @PageIndex
    SET @PageUpperBound 
= @PageSize - 1 + @PageLowerBound

    
-- Create a temp table TO store the select results
    CREATE TABLE #PageIndexForUsers
    (
        IndexId 
int IDENTITY (01) NOT NULL,
        UserId uniqueidentifier
    )

    
-- Insert into our temp table
    INSERT INTO #PageIndexForUsers (UserId)
    SELECT u.UserId
    FROM   dbo.aspnet_Membership m, dbo.aspnet_Users u
    WHERE  u.ApplicationId 
= @ApplicationId AND u.UserId = m.UserId
    ORDER BY u.UserName

    SELECT @TotalRecords 
= @@ROWCOUNT

    SELECT u.UserName, m.Email, m.PasswordQuestion, m.Comment, m.IsApproved,
            m.CreateDate,
            m.LastLoginDate,
            u.LastActivityDate,
            m.LastPasswordChangedDate,
            u.UserId, m.IsLockedOut,
            m.LastLockoutDate
    FROM   dbo.aspnet_Membership m, dbo.aspnet_Users u, #PageIndexForUsers p
    WHERE  u.UserId 
= p.UserId AND u.UserId = m.UserId AND
           p.IndexId 
>= @PageLowerBound AND p.IndexId <= @PageUpperBound
    ORDER BY u.UserName
    RETURN @TotalRecords
END

转载于:https://www.cnblogs.com/duwamish/archive/2008/12/01/1344864.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值