Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使用aspnet\u users\u DeleteUser过程删除旧的aspnet用户?_Asp.net_Sql Server_Stored Procedures_Asp.net Membership - Fatal编程技术网

Asp.net 如何使用aspnet\u users\u DeleteUser过程删除旧的aspnet用户?

Asp.net 如何使用aspnet\u users\u DeleteUser过程删除旧的aspnet用户?,asp.net,sql-server,stored-procedures,asp.net-membership,Asp.net,Sql Server,Stored Procedures,Asp.net Membership,我正在使用标准的aspnet成员表,我正在维护我们的数据库。我们希望删除所有一年内未登录的用户 我知道如何调用aspnet\u Users\u DeleteUser存储过程来删除单个用户,但如何使用它删除aspnet\u Users.LastActivityDate

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

我知道如何调用
aspnet\u Users\u DeleteUser
存储过程来删除单个用户,但如何使用它删除
aspnet\u Users.LastActivityDate
中的所有用户


我可以编写一个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
Declare@ApplicationName nvarchar(256),
@用户名nvarchar(256),
@表ToDeleteFrom int=15,
@NumTablesDeletedFrom int
申报cur
光标
选择aa.LoweredApplicationName,
au.LoweredUserName
来自[dbo].[aspnet_用户]au
加入[dbo].[aspnet_应用程序]aa
关于au.ApplicationId=aa.ApplicationId
其中LastActivityDate<'1/1/2015'
开路电流
接下一个
从cur
进入@ApplicationName,
@用户名
而@@FETCH\u STATUS=0
开始
Exec[dbo].[aspnet\u Users\u DeleteUser]
@应用程序名称,
@用户名,
@表TODELETEFROM,
@从输出中删除numTables
接下一个
从cur
进入@ApplicationName,
@用户名
终点
闭合电流
解除分配cur

您能提供一个过程调用示例吗?@tablestodeletfrom就是我想知道的那个。您对此使用的值是什么?
EXEC@return\u value=[dbo].[aspnet\u Users\u DeleteUser]@ApplicationName=N'/'、@UserName=N'usernameToDelete'、@TablesToDeleteFrom=15、@NumTablesDeletedFrom=@NumTablesDeletedFrom输出
15的@TablesToDeleteFrom参数意味着从所有aspnet表中删除。