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
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//*声明应用程序ID变量,设置为空,查询ID的值并付值.不知道为什么前面都加个这个,用处不清楚.*/
![](/Images/OutliningIndicators/None.gif)
-- 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 (0, 1) NOT NULL,
UserId UNIQUEIDENTIFIER
)
![](/Images/OutliningIndicators/None.gif)
-- Insert into our temp table 按用户名排序的用户ID列表
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
![](/Images/OutliningIndicators/None.gif)
SELECT @TotalRecords = @@ROWCOUNT --返回受上一语句影响的行数(怎么不用前面那种方式了?)
![](/Images/OutliningIndicators/None.gif)
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
posted on
2006-08-30 09:16
MainIsUsed
阅读(
571)
评论()
编辑
收藏
举报