当前位置:  开发笔记 > 编程语言 > 正文

如何使用aspnet_Users_DeleteUser过程删除旧的aspnet用户?

如何解决《如何使用aspnet_Users_DeleteUser过程删除旧的aspnet用户?》经验,为你挑选了1个好方法。

我正在使用标准的aspnet成员资格表,我正在维护我们的数据库.我们希望删除所有未登录一年的用户.

我知道如何调用aspnet_Users_DeleteUser存储过程以删除单个用户,但是如何使用它来删除所有用户aspnet_Users.LastActivityDate < '1/1/2015'呢?

我可以编写一个SELECT语句来输出要删除的用户名,但是如何在每个语句上执行该过程呢?



1> Eric J. Pric..:

这应该是诀窍......

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

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有