1ALTER PROCEDURE dbo.aspnet_Membership_UpdateLastLoginAndActivityDates --更新最近登陆和活跃时间
2 @ApplicationName NVARCHAR(256),
3 @UserName NVARCHAR(256),
4 @TimeZoneAdjustment INT
5AS
6BEGIN
7 DECLARE @UserId UNIQUEIDENTIFIER
8 SELECT @UserId = NULL
9 SELECT @UserId = u.UserId
10 FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, dbo.aspnet_Applications a
11 WHERE LoweredUserName = LOWER(@UserName) AND
12 u.ApplicationId = a.ApplicationId AND
13 LOWER(@ApplicationName) = a.LoweredApplicationName AND
14 u.UserId = m.UserId
15 ---查询符合条件的用户ID(就是用户名=@UserName的)
16
17 IF (@UserId IS NULL) --如果不存在,返回
18 BEGIN
19 RETURN
20 END
21
22 DECLARE @TranStarted BIT
23 SET @TranStarted = 0
24
25 IF( @@TRANCOUNT = 0 ) --如果当前活动事务为0,开始事务,设置事务参数为1
26 BEGIN
27 BEGIN TRANSACTION
28 SET @TranStarted = 1
29 END
30 ELSE
31 SET @TranStarted = 0
32
33 DECLARE @DateTimeNowUTC DATETIME --声明并获取当前时间
34 EXEC dbo.aspnet_GetUtcDate @TimeZoneAdjustment, @DateTimeNowUTC OUTPUT
35
36 UPDATE dbo.aspnet_Membership
37 SET LastLoginDate = @DateTimeNowUTC
38 WHERE UserId = @UserId ---更新此用户的最近登陆时间
39
40 IF( @@ERROR <> 0 ) --如果有错误,回滚
41 GOTO Cleanup
42
43 UPDATE dbo.aspnet_Users
44 SET LastActivityDate = @DateTimeNowUTC
45 WHERE @UserId = UserId ----更新此用户的最近活跃时间
46
47 IF( @@ERROR <> 0 ) --如果有错误,回滚
48 GOTO Cleanup
49
50 IF( @TranStarted = 1 )
51 BEGIN
52 SET @TranStarted = 0
53 COMMIT TRANSACTION
54 END
55
56 RETURN
57
58Cleanup:
59
60 IF( @TranStarted = 1 )
61 BEGIN
62 SET @TranStarted = 0
63 ROLLBACK TRANSACTION
64 END
65
66 RETURN -1
67
68END
2 @ApplicationName NVARCHAR(256),
3 @UserName NVARCHAR(256),
4 @TimeZoneAdjustment INT
5AS
6BEGIN
7 DECLARE @UserId UNIQUEIDENTIFIER
8 SELECT @UserId = NULL
9 SELECT @UserId = u.UserId
10 FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, dbo.aspnet_Applications a
11 WHERE LoweredUserName = LOWER(@UserName) AND
12 u.ApplicationId = a.ApplicationId AND
13 LOWER(@ApplicationName) = a.LoweredApplicationName AND
14 u.UserId = m.UserId
15 ---查询符合条件的用户ID(就是用户名=@UserName的)
16
17 IF (@UserId IS NULL) --如果不存在,返回
18 BEGIN
19 RETURN
20 END
21
22 DECLARE @TranStarted BIT
23 SET @TranStarted = 0
24
25 IF( @@TRANCOUNT = 0 ) --如果当前活动事务为0,开始事务,设置事务参数为1
26 BEGIN
27 BEGIN TRANSACTION
28 SET @TranStarted = 1
29 END
30 ELSE
31 SET @TranStarted = 0
32
33 DECLARE @DateTimeNowUTC DATETIME --声明并获取当前时间
34 EXEC dbo.aspnet_GetUtcDate @TimeZoneAdjustment, @DateTimeNowUTC OUTPUT
35
36 UPDATE dbo.aspnet_Membership
37 SET LastLoginDate = @DateTimeNowUTC
38 WHERE UserId = @UserId ---更新此用户的最近登陆时间
39
40 IF( @@ERROR <> 0 ) --如果有错误,回滚
41 GOTO Cleanup
42
43 UPDATE dbo.aspnet_Users
44 SET LastActivityDate = @DateTimeNowUTC
45 WHERE @UserId = UserId ----更新此用户的最近活跃时间
46
47 IF( @@ERROR <> 0 ) --如果有错误,回滚
48 GOTO Cleanup
49
50 IF( @TranStarted = 1 )
51 BEGIN
52 SET @TranStarted = 0
53 COMMIT TRANSACTION
54 END
55
56 RETURN
57
58Cleanup:
59
60 IF( @TranStarted = 1 )
61 BEGIN
62 SET @TranStarted = 0
63 ROLLBACK TRANSACTION
64 END
65
66 RETURN -1
67
68END