操纵基本(表)的存储过程
-
注册应用程序。
CREATE PROCEDURE aspnet_Applications_CreateApplication(@ApplicationName nvarchar(256),@ApplicationId uniqueidentifier OUTPUT)
该过程检查应用程序名(@ApplicationName)在表(aspnet_Applications)中是否已经存在,
如果存在,则表示应用程序已经注册;如果不存在,就为@ApplicationName在应用程序表
(aspnet_Applications)中新增一行,注册新的应用程序。
输出参数带回用户ID。
-
创建新用户。
CREATE PROCEDURE aspnet_Users_CreateUser(@ApplicationId uniqueidentifier,@UserName nvarchar(256),@IsUserAnonymous bit,@LastActivityDate datetime,@UserId uniqueidentifier OUTPUT)
输出参数带回新建用户的ID。
返回值:成功返回0;
失败(对应于@UserId的用户已存在)返回-1。
-
删除用户表的一个或多个从表中的数据,
当所有从表中的数据都被删除后,也一并删除主表(aspnet_Users)中的数据。
用户表(aspnet_Users)表的主从关系请参看 数据库关系图 。
数据库关系图 。
CREATE PROCEDURE aspnet_Users_DeleteUser(@ApplicationName nvarchar(256),@UserName nvarchar(256),@TablesToDeleteFrom int,@NumTablesDeletedFrom int OUTPUT)
输入参数@TablesToDeleteFrom为下面表格中单项值或多项值的二进制或值。
表 值 aspnet_Membership 1 aspnet_UsersInRoles 2 aspnet_Profile 4 aspnet_PersonalizationPerUser 8
输出参数@NumTablesDeletedFrom带回受影响表的数量(0~5)。
返回值:成功返回 0;
发生错误,返回 SQL SEVER 系统错误号( @@ERROR)。
其它(杂类)
aspnet_AnyDataInTables:检查某个表中是否存在数据,还是空表。
aspnet_WebEvent_LogEvent:
由SqlWebEventProvider调用,向aspnet_WebEvent_Events表中写入事件日志。
以下三个是关于SchemaVersion的(请参见aspnet_SchemaVersions表)。
aspnet_CheckSchemaVersion
aspnet_RegisterSchemaVersion
aspnet_UnRegisterSchemaVersion
以下两个是ASPNETDB的自维护存储过程
aspnet_Setup_RemoveAllRoleMembers:SQL SERVER ROLE
aspnet_Setup_RestorePermissions:SQL SERVER PERMISSION
-
创建用户成员资格。
CREATE PROCEDURE aspnet_Membership_CreateUser(@ApplicationName nvarchar(256),@UserName nvarchar(256),@Password nvarchar(128),@PasswordSalt nvarchar(128),@Email nvarchar(256),@PasswordQuestion nvarchar(256),@PasswordAnswer nvarchar(128),@IsApproved bit,@CurrentTimeUtc datetime,@CreateDate datetime = NULL,@UniqueEmail int = 0,@PasswordFormat int = 0,@UserId uniqueidentifier OUTPUT)
该过程首先调用 aspnet_Applications_CreateApplication 注册应用程序;
然后检查用户表(aspnet_Users) 中是否已存在该用。如果存在,
更新其最后活动时间(LastActivityDate 字段);
如果不存在,就调用 aspnet_Users_CreateUser 创建一个用户;
最后将用户成员资格数据添加到aspnet_Membership表中。
返回值:成功返回0;
调用 aspnet_Applications_CreateApplication 失败,返回 -1;
调用 aspnet_Users_CreateUser 失败,返回 -1;
如果 aspnet_Users_CreateUser 返回为 -1 ,返回10;
@UserId 与用户表(aspnet_Users) 中的 UserID 不一致,返回 6;
当用户成员资格表(aspnet_Memberships) 中 Emai 字段值被要求唯一时,
创建用户成员资格导致 Email 重复,返回7;
用户在用户成员资格表(aspnet_Memberships) 中已经存在,返回6;
发生错误,返回-1。
-
更改用户成员资格数据。
CREATE PROCEDURE aspnet_Membership_UpdateUser
(@ApplicationName nvarchar(256),@UserName nvarchar(256),@Email nvarchar(256),@Comment ntext,@IsApproved bit,@LastLoginDate datetime,@LastActivityDate datetime,@UniqueEmail int,@CurrentTimeUtc datetime
)
该过程先更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate) 字段;
然后更改用户成员资格表(aspnet_Memberships) 中的Email、备注(Comment)、
是否启用用户成员资格(IsApproved)、最后登录时间(LastLoginDate)字段。
返回值:成功返回 0;
用户不存在,返回 1;
当要求Email唯一时,@Email与其他用户的Email重复,返回 7;
发生错误,返回 -1。
-
更改用户成员资格(安全)信息。
CREATE PROCEDURE aspnet_Membership_UpdateUserInfo(@ApplicationName nvarchar(256),@UserName nvarchar(256),@IsPasswordCorrect bit,@UpdateLastLoginActivityDate bit,@MaxInvalidPasswordAttempts int,@PasswordAttemptWindow int,@CurrentTimeUtc datetime,@LastLoginDate datetime,@LastActivityDate datetime)
该过程计算并设置(更改)用户成员资格表(aspnet_Memberships) 中的有关用户帐户安全的字段:
IsLockedOut、LastLockoutDate、FailedPasswordAttemptCount、
FailedPasswordAttemptWindowStart、FailedPasswordAnswerAttemptCount、
FailedPasswordAnswerAttemptWindowStart。
输入参数@UpdateLastLoginActivityDate指示是否在上述操作之前,
先更新最后登录时间(LastLoginDate) 字段和用户表(aspnet_Users)中的最后活动时间(LastActivityDate) 字段。
返回值:成功返回 0;
用户不存在,返回 1;
发生错误,返回 -1。
-
更改用户的密码问题和密码答案
CREATE PROCEDURE aspnet_Membership_ChangePasswordQuestionAndAnswer(@ApplicationName nvarchar(256),@UserName nvarchar(256),@NewPasswordQuestion nvarchar(256),@NewPasswordAnswer nvarchar(128))
返回值:成功返回 0;
失败(用户不存在)返回 1。
-
重置用户密码。
CREATE PROCEDURE aspnet_Membership_ResetPassword
(@ApplicationName nvarchar(256),@UserName nvarchar(256),@NewPassword nvarchar(128),@MaxInvalidPasswordAttempts int,@PasswordAttemptWindow int,@PasswordSalt nvarchar(128),@CurrentTimeUtc datetime,@PasswordFormat int = 0,@PasswordAnswer nvarchar(128) = NULL
)
该过程更改用户密码及其相关字段,
然后计算并设置有关用户帐户安全的字段
(参见 aspnet_Membership_UpdateUserInfo )。
返回值:成功返回 0;
用户不存在,返回 1;
用户被锁定,返回 99;
密码问题答案不准确,返回 3;
发生错误,返回-1。
-
设置用户密码。
CREATE PROCEDURE aspnet_Membership_SetPassword
(@ApplicationName nvarchar(256),@UserName nvarchar(256),@NewPassword nvarchar(128),@PasswordSalt nvarchar(128),@CurrentTimeUtc datetime,@PasswordFormat int = 0
)
返回值:成功返回 0;
用户不存在,返回 1;
-
解除用户锁定
CREATE PROCEDURE aspnet_Membership_UnlockUser
(@ApplicationName nvarchar(256),@UserName nvarchar(256)
)
返回值:成功返回 0;
用户不存在,返回 1。
-
(LIKE)查询 Email 与 @EmailToMatch 匹配的用户成员资格数据,返回分页用户数据集。
CREATE PROCEDURE aspnet_Membership_FindUsersByEmail(@ApplicationName nvarchar(256),@EmailToMatch nvarchar(256),@PageIndex int,@PageSize int)
返回值:所有满足条件的行数。
-
(LIKE)查询用户名与@UserNameToMatch匹配的用户成员资格数据,返回分页用户数据集。
CREATE PROCEDURE aspnet_Membership_FindUsersByName(@ApplicationName nvarchar(256),@UserNameToMatch nvarchar(256),@PageIndex int,@PageSize int)
返回值:所有满足条件的行数。
-
返回分页(所有)用户成员资格数据集。
CREATE PROCEDURE aspnet_Membership_GetAllUsers(@ApplicationName nvarchar(256),@PageIndex int,@PageSize int)
返回值:所有满足条件的行数。
-
根据Email查询用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByEmail
(@ApplicationName nvarchar(256),@Email nvarchar(256)
)
返回值:成功返回 0;
用户不存在,返回 1。
-
根据用户名查询用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByName
(@ApplicationName nvarchar(256),@UserName nvarchar(256),@CurrentTimeUtc datetime,@UpdateLastActivity bit = 0
)
输入参数@UpdateLastActivity指定是否更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate)字段。
返回值:成功返回 0;
用户不存在,返回 -1。
-
根据用户ID查询用户用户成员资格数据,返回用户数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetUserByUserId(@UserId uniqueidentifier ,@CurrentTimeUtc datetime,@UpdateLastActivity bit = 0)
输入参数@UpdateLastActivity指定是否更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate)字段。
返回值:成功返回 0;
用户不存在,返回 -1。
-
查询用户的密码和存储密码的格式,返回包含用户密码和密码存储格式两个字段的数据据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetPassword(@ApplicationName nvarchar(256),@UserName nvarchar(256),@MaxInvalidPasswordAttempts int,@PasswordAttemptWindow int,@CurrentTimeUtc datetime,@PasswordAnswer nvarchar(128) = NULL)
如果密码问题答案不准确,需计算并设置有关用户帐户安全的字段。
(参见 aspnet_Membership_UpdateUserInfo )。
返回值:成功返回 0;
用户不存在,返回 1;
用户被锁定,返回 99;
密码问题答案不准确,返回 3;
发生错误,返回 -1。
-
查询有关用户密码的详细信息,返回用户帐户信息数据集(一行)。
CREATE PROCEDURE aspnet_Membership_GetPasswordWithFormat
(@ApplicationName nvarchar(256),@UserName nvarchar(256),@UpdateLastLoginActivityDate bit,@CurrentTimeUtc datetime
)
输入参数@UpdateLastLoginActivityDate指示是否更新最后登录时间(LastLoginDate) 字段
和用户表(aspnet_Users)中的最后活动时间(LastActivityDate) 字段。
返回值:成功返回 0;
用户不存在,返回 1;
用户被锁定,返回 99。
-
获取在线用户数。
CREATE PROCEDURE aspnet_Membership_GetNumberOfUsersOnline(@ApplicationName nvarchar(256),@MinutesSinceLastInActive int,@CurrentTimeUtc datetime)
最近@MinutesSinceLastInActive分钟内登录的用户为在线用户,
即满足 LastActivityDate( datetime) >= @CurrentTimeUtc( datetime) - @MinutesSinceLastInActive(分钟数)的条件。
返回值:返回在线用户数
-
创建角色。
CREATE PROCEDURE aspnet_Roles_CreateRole(@ApplicationName nvarchar(256),@RoleName nvarchar(256))
该过程首先调用 aspnet_Applications_CreateApplication 注册应用程序;
然后将角色数据添加到角色表(aspnet_Roles) 中。
返回值:成功返回 0;
角色已存在,返回 1。
发生错误,返回 -1。
-
删除指定角色。
CREATE PROCEDURE aspnet_Roles_DeleteRole(@ApplicationName nvarchar(256),@RoleName nvarchar(256),@DeleteOnlyIfRoleIsEmpty bit)
输入参数@DeleteOnlyIfRoleIsEmpty指示是否只有当角色在未和任何用户关联
的情况下(即在aspnet_UsersInRoles表中已经不存在该角色了),才允许
在角色表(aspnet_Roles) 中删除角色。
返回值:成功返回0;
应用程序未被注册,返回 1;
角色不存在,返回 1;
aspnet_UsersInRoles 表中存在引用角色的数据,返回 2;
-
查询(所有)角色,返回角色名数据集。
CREATE PROCEDURE aspnet_Roles_GetAllRoles(@ApplicationName nvarchar(256))
-
检查角色是否存在。
CREATE PROCEDURE aspnet_Roles_RoleExists(@ApplicationName nvarchar(256),@RoleName nvarchar(256))
返回值:角色存在,返回 1;
角色不存在,返回 0。
-
向aspnet_UsersInRoles表批量添加数据。
CREATE PROCEDURE aspnet_UsersInRoles_AddUsersToRoles(@ApplicationName nvarchar(256),@UserNames nvarchar(4000),@RoleNames nvarchar(4000),@CurrentTimeUtc datetime)
该过程将一批用户批量关联到一批指定的角色。
如果用户不存在,则先向用户表(aspnet_Users)中添加用户。
输入参数 @UserNames以 ','间隔各用户名。
输入参数 @RoleNames以 ','间隔各角色名。
返回值:成功返回0;
应用程序未被注册,返回 2;
如果@RoleNames中的某一个角色在角色表中不存在,返回 2;
如果@UserNames和@RoleNames中的任一个用户角色组合
在 aspnet_UsersInRoles 表中已经存在,返回3。
-
从aspnet_UsersInRoles表批量删除数据。
CREATE PROCEDURE aspnet_UsersInRoles_RemoveUsersFromRoles(@ApplicationName nvarchar(256),@UserNames nvarchar(4000),@RoleNames nvarchar(4000))
输入参数 @UserNames以 ','间隔各用户名。
输入参数 @RoleNames以 ','间隔各角色名。
返回值:成功返回0;
应用程序未被注册,返回 2;
如果@UserNames中的某一个用户在用户表中不存在,返回 1;
如果@RoleNames中的某一个角色在角色表中不存在,返回 2;
如果@UserNames和@RoleNames中的任一个用户角色组合
在aspnet_UsersInRoles 中不存在,返回 3。
-
(LIKE)查询指定角色并且用户名与@UserNameToMatch匹配的用户,返回用户名数据集。
CREATE PROCEDURE aspnet_UsersInRoles_FindUsersInRole(@ApplicationName nvarchar(256),@RoleName nvarchar(256),@UserNameToMatch nvarchar(256))
返回值:成功返回0;
应用程序未被注册,返回 1;
角色不存在,返回 1。
- 查询指定角色的用户,返回用户名数据集。
CREATE PROCEDURE aspnet_UsersInRoles_GetUsersInRoles(@ApplicationName nvarchar(256),@RoleName nvarchar(256))
返回值:成功返回0;
应用程序未被注册,返回 1;
角色不存在,返回 1。
- 查询指定用户的角色,返回角色名数据集。
CREATE PROCEDURE aspnet_UsersInRoles_GetRolesForUser(@ApplicationName nvarchar(256),@UserName nvarchar(256))
返回值:成功返回0;
应用程序未被注册,返回 1;
用户不存在,返回 1;
- 检查aspnet_UsersInRoles表中相关记录是否存在。
CREATE PROCEDURE aspnet_UsersInRoles_IsUserInRole(@ApplicationName nvarchar(256),@UserName nvarchar(256),@RoleName nvarchar(256))
返回值:应用程序未被注册,返回 1;
用户不存在,返回 2;
角色不存在,返回 2;
如果aspnet_UsersInRoles表中@UserName、@UserName组合存在,返回 1;
如果不存在,返回 0。
-
设置(保存)用户的自定义属性数据。
CREATE PROCEDURE aspnet_Profile_SetProperties(@ApplicationName nvarchar(256),@PropertyNames ntext,@PropertyValuesString ntext,@PropertyValuesBinary image,@UserName nvarchar(256),@IsUserAnonymous bit,@CurrentTimeUtc datetime)
该过程首先调用 aspnet_Applications_CreateApplication 注册应用程序;
然后检查用户表(aspnet_Users) 中是否已存在该用。如果存在,
更新其最后活动时间(LastActivityDate 字段);
如果不存在,就调用 aspnet_Users_CreateUser 创建一个用户;
最后检查个性化用户配置(aspnet_Profile)表中是否存在用户的自定义属性数据,
如果存在,则更新数据,否则,向表中添加一行用户自定义属性数据。
返回值:成功返回 0;
发生错误,返回 -1。
-
删除非活动用户的自定义属性数据。
CREATE PROCEDURE aspnet_Profile_DeleteInactiveProfiles(@ApplicationName nvarchar(256),@ProfileAuthOptions int,@InactiveSinceDate datetime)
输入参数:@ProfileAuthOptions取下列3值之一。
0:匿名用户;
1:验证用户;
2:所有用户。
最后活动时间(aspnet_Users表中的LastActivityDate字段)
小于等于@InactiveSinceDate 的用户为非活动用户。
返回值:删除的行数。
- 批量删除用户的自定义属性数据,以查询形式返回删除的行数。
CREATE PROCEDURE aspnet_Profile_DeleteProfiles(@ApplicationName nvarchar(256),@UserNames nvarchar(4000))
输入参数 @UserNames以 ','间隔各用户名。
返回值:成功返回 0;
发生错误,返回 -1。
- 返回指定用户的自定义属性数据集(一行),
同时更新用户表(aspnet_Users)中的最后活动时间(LastActivityDate字段)。
CREATE PROCEDURE aspnet_Profile_GetProperties(@ApplicationName nvarchar(256),@UserName nvarchar(256),@CurrentTimeUtc datetime)
- 查询用户的自定义属性数据,返回两个数据集,
第一个返回分页数据集,第二个数据集返回所有满足条件的行数。
CREATE PROCEDURE aspnet_Profile_GetProfiles(@ApplicationName nvarchar(256),@ProfileAuthOptions int,@PageIndex int,@PageSize int,@UserNameToMatch nvarchar(256) = NULL,@InactiveSinceDate datetime = NULL)
输入参数:@ProfileAuthOptions取下列3值之一。
0:匿名用户;
1:验证用户;
2:所有用户。
- 查询具有自定义属性数据的非活动用户数,以查询形式返回。
CREATE PROCEDURE aspnet_Profile_GetNumberOfInactiveProfiles(@ApplicationName nvarchar(256),@ProfileAuthOptions int,@InactiveSinceDate datetime)
输入参数:@ProfileAuthOptions取下列3值之一。
0:匿名用户;
1:验证用户;
2:所有用户。