avatar_DapKUH

Удаление аккаунтов в MU online: как найти и удалить неактивных персонажей

Автор DapKUH, 2011 Апр. 08, 21:03

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] удаление аккаунтаудаление персонажейнеактивные игроки

DapKUH

Нужен SQL скрипт который удаляет аккаунт и персонажей которые не заходили в игру больше 2-ух месяцев.

Может кто подсказать готовое решение?
ЗЫ. Сам парился, не получилось.
Думаю это уже боянный вопрос, и уже кто то имеет информацию по данному топику.

За ранее спасибо 

Sweng

declare @deldate datetime
set @deldate = '2008-04-05' - выстави дату

DECLARE tnames CURSOR
FOR select memb___id from memb_stat where connecttm < @deldate  or disconnecttm < @deldate
open tnames
DECLARE @tablename sysname
FETCH NEXT FROM tnames INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AccountCharacter]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete accountcharacter where id = @tablename
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[character]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete character where accountid = @tablename
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[memb_info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete memb_info where memb___id = @tablename
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vi_curr_info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete vi_curr_info where memb___id = @tablename
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[warehouse]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete warehouse where accountid = @tablename
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[extwarehouse]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) delete extwarehouse where accountid = @tablename
print 'delete account: ' + @tablename
FETCH NEXT FROM tnames INTO @tablename
END
close tnames
DEALLOCATE tnames

delete character where accountid not in (select memb___id from memb_info)
GO
delete accountcharacter where id not in (select memb___id from memb_info)
GO
delete warehouse where accountid not in (select memb___id from memb_info)
GO
delete extwarehouse where accountid not in (select memb___id from memb_info)
GO

Попробуй этот скрипт, предварительно только бэкап сделай.

Похожие темы (5)

Сообщений: 17
Просмотров: 15482

Сообщений: 189
Просмотров: 71025

Сообщений: 16
Просмотров: 10520