Я хочу, чтобы проверить таблицу PREMIUM_SERVICE_USER
, если какая-либо запись существует для strClientID
обновления timeValid
для +30, если нет записей для strClientID
вставки в premium_service_user
таблицы.Проверьте, существует запись, если да «обновление», если не «вставить»
Что я делаю неправильно?
Он увеличивает timeValid
на +30 дней, но вставляет еще одну строку.
SELECT @pre_var = count(*)
FROM PREMIUM_SERVICE_USER
WHERE strClientID = @strClientID
/* bronze premium - 200 cash */
IF @Premium = 1
BEGIN
INSERT INTO PREMIUM_SERVICE_USER
(strClientID, timeReg, timeValid, bCurrent, durum)
VALUES
(@strClientID,getdate(),getdate() + 30,'1','1')
UPDATE TB_USER
SET cash = cash+200
WHERE strAccountID = @strClientID
END
IF @Premium = 1 AND @pre_var = 1
BEGIN
UPDATE PREMIUM_SERVICE_USER
SET timevalid = timevalid+30 where strClientID = @strClientID
UPDATE PREMIUM_SERVICE_USER
SET bCurrent = 1 where strClientID = @strClientID
UPDATE TB_USER
SET cash = cash+200 WHERE strAccountID = @strClientID
END
Кроме исправления найденных ниже, я также хотел бы предложить, что вы объедините операторы UPDATE в одном операторе для PREMIUM_SERVICE_USER –