1
ALTER PROCEDURE dbo.aspnet_Membership_UpdateLastLoginAndActivityDates --更新最近登陆和活跃时间
2
@ApplicationName NVARCHAR(256),
3
@UserName NVARCHAR(256),
4
@TimeZoneAdjustment INT
5
AS
6
BEGIN
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![]()
58
Cleanup:
59![]()
60
IF( @TranStarted = 1 )
61
BEGIN
62
SET @TranStarted = 0
63
ROLLBACK TRANSACTION
64
END
65![]()
66
RETURN -1
67![]()
68
END
ALTER PROCEDURE dbo.aspnet_Membership_UpdateLastLoginAndActivityDates --更新最近登陆和活跃时间2
@ApplicationName NVARCHAR(256),3
@UserName NVARCHAR(256),4
@TimeZoneAdjustment INT5
AS6
BEGIN7
DECLARE @UserId UNIQUEIDENTIFIER8
SELECT @UserId = NULL9
SELECT @UserId = u.UserId10
FROM dbo.aspnet_Membership m, dbo.aspnet_Users u, dbo.aspnet_Applications a11
WHERE LoweredUserName = LOWER(@UserName) AND12
u.ApplicationId = a.ApplicationId AND13
LOWER(@ApplicationName) = a.LoweredApplicationName AND14
u.UserId = m.UserId15
---查询符合条件的用户ID(就是用户名=@UserName的)16
17
IF (@UserId IS NULL) --如果不存在,返回18
BEGIN19
RETURN20
END21

22
DECLARE @TranStarted BIT 23
SET @TranStarted = 024

25
IF( @@TRANCOUNT = 0 ) --如果当前活动事务为0,开始事务,设置事务参数为126
BEGIN27
BEGIN TRANSACTION28
SET @TranStarted = 129
END30
ELSE31
SET @TranStarted = 032

33
DECLARE @DateTimeNowUTC DATETIME --声明并获取当前时间34
EXEC dbo.aspnet_GetUtcDate @TimeZoneAdjustment, @DateTimeNowUTC OUTPUT35

36
UPDATE dbo.aspnet_Membership37
SET LastLoginDate = @DateTimeNowUTC38
WHERE UserId = @UserId ---更新此用户的最近登陆时间39
40
IF( @@ERROR <> 0 ) --如果有错误,回滚41
GOTO Cleanup42

43
UPDATE dbo.aspnet_Users44
SET LastActivityDate = @DateTimeNowUTC45
WHERE @UserId = UserId ----更新此用户的最近活跃时间46

47
IF( @@ERROR <> 0 ) --如果有错误,回滚48
GOTO Cleanup49

50
IF( @TranStarted = 1 )51
BEGIN52
SET @TranStarted = 053
COMMIT TRANSACTION54
END55

56
RETURN57

58
Cleanup:59

60
IF( @TranStarted = 1 )61
BEGIN62
SET @TranStarted = 063
ROLLBACK TRANSACTION64
END65

66
RETURN -167

68
END
浙公网安备 33010602011771号