如何使用 aspnet_Users_DeleteUser 程序删除旧的 aspnet 用户?
How to delete old aspnet users with aspnet_Users_DeleteUser procedure?
我正在使用标准的 aspnet 成员表,并且正在维护我们的数据库。我们想删除所有一年未登录的用户。
我知道如何调用 aspnet_Users_DeleteUser
存储过程来删除单个用户,但如何使用它来删除 aspnet_Users.LastActivityDate < '1/1/2015'
中的所有用户?
我可以写一个 SELECT 语句来取出要删除的用户名,但是我怎样才能对每个用户名执行该过程?
这应该可以解决问题...
Declare @ApplicationName nvarchar(256),
@UserName nvarchar(256),
@TablesToDeleteFrom int = 15,
@NumTablesDeletedFrom int
Declare cur
Cursor For
Select aa.LoweredApplicationName,
au.LoweredUserName
From [dbo].[aspnet_Users] au
Join [dbo].[aspnet_Applications] aa
On au.ApplicationId = aa.ApplicationId
Where LastActivityDate < '1/1/2015'
Open cur
Fetch Next
From cur
Into @ApplicationName,
@UserName
While @@FETCH_STATUS = 0
Begin
Exec [dbo].[aspnet_Users_DeleteUser]
@ApplicationName,
@UserName,
@TablesToDeleteFrom,
@NumTablesDeletedFrom Out
Fetch Next
From cur
Into @ApplicationName,
@UserName
End
Close cur
Deallocate cur
我正在使用标准的 aspnet 成员表,并且正在维护我们的数据库。我们想删除所有一年未登录的用户。
我知道如何调用 aspnet_Users_DeleteUser
存储过程来删除单个用户,但如何使用它来删除 aspnet_Users.LastActivityDate < '1/1/2015'
中的所有用户?
我可以写一个 SELECT 语句来取出要删除的用户名,但是我怎样才能对每个用户名执行该过程?
这应该可以解决问题...
Declare @ApplicationName nvarchar(256),
@UserName nvarchar(256),
@TablesToDeleteFrom int = 15,
@NumTablesDeletedFrom int
Declare cur
Cursor For
Select aa.LoweredApplicationName,
au.LoweredUserName
From [dbo].[aspnet_Users] au
Join [dbo].[aspnet_Applications] aa
On au.ApplicationId = aa.ApplicationId
Where LastActivityDate < '1/1/2015'
Open cur
Fetch Next
From cur
Into @ApplicationName,
@UserName
While @@FETCH_STATUS = 0
Begin
Exec [dbo].[aspnet_Users_DeleteUser]
@ApplicationName,
@UserName,
@TablesToDeleteFrom,
@NumTablesDeletedFrom Out
Fetch Next
From cur
Into @ApplicationName,
@UserName
End
Close cur
Deallocate cur