2017-02-17 10 views
0

В теории, я пытаюсь предотвратить редактирование некоторых записей - он должен сравнить системную дату и строку с именем DateAdded, которая хранит даты как Дата (ГГГГ-ММ-ДД).Триггер для предотвращения вставки удаления и обновления записей на основе соответствия даты?

Если запись устарела (то есть) Sysdate> DateAdded, не допускайте внесения изменений в запись.

+0

Кажется достаточно легко сделать с помощью вместо триггеров. Вы даже можете сделать все с помощью одного триггера, хотя я бы не рекомендовал его. –

+0

Будьте осторожны при использовании триггеров для этого. Он может генерировать ложные сообщения об ошибках, если вы не предоставляете обратную связь о том, что обновляемые значения недействительны. Приложение просто «обновит», но фактически не сделает ничего, что невероятно запутывает конечного пользователя. –

ответ

0

Попробуйте следующее:

CREATE TRIGGER T1 
ON YOURTABLE 
INSTEAD OF UPDATE 
AS 
    if exists (select * from inserted where DateAdded >= getdate()) 
    begin 
     update yourtable 
     set DateAdded = (select DateAdded from inserted) 
     ... 
     where yourtable.key = (select key from inserted); 
    end 
GO