Добрый день! Уважаемые есть у кого то пример sql скрипта с помощью которого можно удалить не нужные зарегистрированные в базе карты? Или может это можно сделать через managment studio ? Подскажите как удалить карты из базы. Спасибо!
Добрый день! Уважаемые есть у кого то пример sql скрипта с помощью которого можно удалить не нужные зарегистрированные в базе карты? Или может это можно сделать через managment studio ? Подскажите как удалить карты из базы. Спасибо!
А зачем?
Удалить карты, если по ним были кассовые операции и игры - это геморройная задачка.
Слишком много связанных таблиц нужно будет обработать и не накосячить.
Тем более не понимаю - Зачем???
В зависимости от версии GK с которой вы работаете это будут разные таблицы. Какая версия?
Если у вас сохранились скрипты, при помощи которых карты добавлялись в БД, то в них вы можете увидеть в какую таблицу шло добавление, и соответственно просто удалить добавленные записи из этих таблиц.
Если версия старая (до 3,16 по моему), то это были 2 таблицы в 2-х базах. Если от 3.16 до 3.2Х, то там одна таблица. В самых старших версиях (там где карты добавляются в БД через Редактор) - не смотрел.
С версии 3.23 если я не ошибаюсь, карты удаляются вот этим запросом:
Сначала
Delete gk.GK_CARDS_EXT
where card = ....
Потом
Delete gk.GK_CARDS
where card = ....
Если хотите удалить какой то диапазон карт, то запрос такой:
Сначала
Delete gk.GK_CARDS_EXT
where card >= 1089000
and card <= 1090000
Потом
Delete gk.GK_CARDS
where card >= 1089000
and card <= 1090000
Я бы сделал так для версии 3.23
ковыряю базу достаточно давно, знаю что и для чего.
А вообще карты лучше не удалять - потому что коды стоят денег - лучше обеспечить ротацию замененных и утеряных карт.Код:DECLARE @CARD int DECLARE upd CURSOR READ_ONLY FOR SELECT [CARD] FROM [gkArcade].[gk].[GK_CARDS] WHERE [STATE] in(2,3) --Замененные(3) и удаленные(2) карты -- WHERE [STATE] = 1 -- Активные карты -- WHERE [STATE] = 0 -- Неактивные карты(для продажи) -- WHERE [CARD] >= 3670 AND [CARD] <= 3744 -- Карты по номерам OPEN upd FETCH NEXT FROM upd INTO @CARD WHILE (@@FETCH_STATUS <> -1) BEGIN --PRINT "Удаляем "+@CARD DELETE [gkArcade].[gk].[GK_CARDS] WHERE [CARD]=@CARD -- таблица карт DELETE [gkArcade].[gk].[GK_CARDS_EX] WHERE [CARD]=@CARD -- персональная информация DELETE [gkArcade].[gk].[GK_CARDS_EXT] WHERE [CARD]=@CARD -- хэши кодов карт DELETE [gkArcade].[gk].[GK_CARDS_PHOTO] WHERE [CARD]=@CARD -- фото владельцев DELETE [gkArcade].[gk].[GK_CARDS_CO] WHERE [CARD]=@CARD -- для охранного поста FETCH NEXT FROM upd INTO @CARD END CLOSE upd
Покупаешь 5000 кодов - а в базе есть еще 10000 кодов не проданных(неактивированны ) карт - просто самих карт нет. Так что имея 50000 карт можно вполне обходиться без генерации кодов.
Последний раз редактировалось NeiroN; 07.02.2015 в 20:39.