-
Deletar contas Inativas.
Bom estou com um problema ao deletar contas que nunca logaram no servidor.
usei a seguinte query !
Código PHP:
DECLARE @Acc varchar(10), @Chars varchar(10), @test int
select @test = 0
DECLARE LISTA CURSOR LOCAL FOR
SELECT memb___id FROM MEMB_INFO
OPEN LISTA
FETCH NEXT FROM LISTA INTO @Acc
WHILE @@FETCH_STATUS = 0
begin
if (SELECT COUNT(*) FROM Character where AccountID=@Acc) = 0
begin
DELETE from MEMB_INFO where memb___id=@Acc
DELETE from VI_CURR_INFO where memb___id=@Acc
select @test = @test + 1
end
FETCH NEXT FROM LISTA INTO @Acc
end
CLOSE LISTA
DEALLOCATE LISTA
print @test
E está aparecendo esse erro !
Código PHP:
Msg 208, Level 16, State 1, Line 12 Invalid object name 'VI_CURR_INFO
-
Estranho em amigo !
pois Somente copiei e Coloquei no meu Banco e Executou todos sem nenhum Erro !.
Você verificou se na sua tabela existe a VI_CURR_INFO ?
Talvez possa ser isso amigo !
Atenciosamente
-
Rodei à mesma e nao apagou foi efetivamente nada rsrs
-
Analisando melhor a query, pode-se perceber que há um desvio condicional que muda a porra toda.
Aqui ó:
if (SELECT COUNT(*) FROM Character where AccountID=@Acc) = 0
Isto significa o seguinte: se a quantidade de contas na character com o login indicado for igual a 0, ou seja, se NÃO EXISTIR NENHUM CHAR COM AQUELE LOGIN, ele deleta as contas da memb_info e da vi_curr_info com este login, caso contrário ele passa para a próxima conta.
Esse script, portanto, só deleta contas em que não há chars. Dessa forma, se o cara cria uma conta, cria um char e fica 100 anos sem logar nela, o script não vai deletar essa conta.
O ideal seria uma query que verifica-se o tempo em que a conta está sem logar e, caso for maior que o tempo permitido: deleta.
Vou ver se faço quando sobrar um tempinho, daí eu posto aqui.
-
Seria fundamental para vários administradores. boa iniciativa Reenaatiin irá ajudar muitos.