Posted on 2006-09-06 23:23
风之语 阅读(1622)
评论(8) 编辑 收藏
操纵基本(表)的存储过程
-
注册应用程序。
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
ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表ASPNETDB 表和视图(2) 用户成员资格和角色管理 表ASPNETDB 表和视图(3) 个性化用户配置、页面个性化设置 表 和视图存储过程(1) 基本及杂类
ASPNETDB 存储过程(2) 成员资格管理部分 ASPNETDB 存储过程(3) 角色管理部分 ASPNETDB 存储过程(4) 个性化用户配置部分
@Jason Cui
感谢回帖,这是我.net 2.0 4大应用功能分析的一部分,
我会陆续贴出表和视图、数据库关系图,最后讨论一下 provider 与ASPNETDB
的关系,请你继续关注我的blog。
半夜里我新发了一篇,总算有点说明了。
ASPNETDB 数据库关系图、表和视图(1) 基本表和独立表
老大,神仙果然就是神仙啊~~~
我顶~~虽然俺看不大懂,但顶先~~~
@TablesToDeleteFrom为下面表格中单项值或多项值的二进制或值。
我不明白这些值是怎么来的?什么原理?谢谢:)
Hunts.C兄:
输入参数@TablesToDeleteFrom为1表示删除aspnet_Membership(成员资格)表中该用户对应的行;为2表示删除aspnet_UsersInRoles(角色部分)表中该用户对应的行...此为单项值
多项值,譬如3(= 1 + 2)表示同时删除aspnet_Membership和aspnet_UsersInRoles中的对应行...
同样要把该用户(user)删全,就应该传入(1 + 2 + 4 + 8 =) 15。
所谓二进制或值,你把上面的加法用二进制运算一次,就会发现其实就是某位的置1或置0(也就是 或 运算了)
至于@TablesToDeleteFrom怎么来的?这个是某个provider调用
aspnet_Users_DeleteUser时由provider传入的,譬如你想删除某User的成员资格,你会调用Membership类的DeleteUser方法,通过MembershipProvider调用aspnet_Users_DeleteUser存储过程,这时@TablesToDeleteFrom就为1,这个1是MembershipProvider指定的