У меня есть следующие таблицы:
- Карточки (IDCard, IDPerson, Баланс, Актив)
- Персоны (IDPerson)
Каждый раз, когдановая карта вставлена, мне нужно проверить, принадлежит ли эта карта человеку.Если это так, мне нужно изменить активное значение на ложное, и новая карта должна получить остаток предыдущей карты, и состояние должно быть истинным.
select count(c.IDPerson)
from cards c, inserted i
where c.IDPerson = i.IDPerson;
if @@ROWCOUNT > 0
begin
print'this card already exists'
select c.IDPerson, c.Balance, c.Active
INTO #tmp
FROM Cards c, inserted i
where c.IDCard = i.IDCard
update Cards
set Active = 0
from #tmp
where #tmp.IDPerson = Cards.IDPerson;
end
Когда я вставляю новую запись в таблицу карт,старая карта становится ложной (0), однако новая карта также остается с активным, равным ложному.Это после вставки на карточный стол.
Может кто-нибудь сказать мне, как решить проблему?