Проверьте, не просрочена ли дата продукта - PullRequest
0 голосов
/ 28 мая 2020

Я хочу создать своего рода чек, который проверяет, просрочена ли дата продукта. В моей таблице продуктов у меня есть столбец с именем veilingGesloten (аукционClosed), который может содержать значение «да» или «нет».

Итак, я сделал это:

create TRIGGER [dbo].[trg_validategesloten]
ON [dbo].[voorwerp]
after update, insert
AS
begin
    set nocount on;

    update [dbo].[voorwerp]
        set veilinGesloten =
        case when ( inserted.looptijdeindeDag <= GETDATE() ) then 'wel'
        else 'niet'
        end
    from [dbo].[voorwerp]
    inner join inserted on [dbo].[voorwerp].voorwerpnummer = inserted.voorwerpnummer;
end

Теперь мне интересно, как на самом деле сделать это автоматическим процессом без каких-либо событий вставки или обновления

1 Ответ

0 голосов
/ 29 мая 2020

Вы не запускаете его - вы используете вычисляемый столбец:

alter table voorwerp add veilinGesloten
    as (case when looptijdeindeDag <= getdate() then 'wel' else 'niet' end);

Лично я бы использовал битовое поле и преобразовал бы в значимые слова во внешнем интерфейсе.

alter table voorwerp add veilinGesloten
    as (convert(bit, case when looptijdeindeDag <= getdate() then 1 else 0 end));
...