DELETE FROM таблица_документов WHERE id_doc IN
(
SELECT id_doc FROM таблица_соединитель WHERE id_date IN
(
SELECT id_date FROM таблица_дат WHERE DATEDIFF(dd, дата_создания, getdate()) > 730 /*730 - это два года по 365 дней*/
)
)
Процедура удаления в MSSQL Server 2003
Документ и даты хранятся в разных таблицах и соединяются через третью таблицу по ИД.
Пример:
1)таблица документов
id_doc
номер_документа
2)таблица дат
id_date
дата создания
3)таблица соединитель
id_cdelka
id_date
id_doc
Начальная дата хранится в БД, я ее сам туда заношу в формате год.месяц.день и цепляю ее к документу, т.е. выходит следующее Документ1 был создан 2006.10.03
Эту дату нужно сравнить с текущей и если разница между ними 2 года удалить автоматически, как это сделать?
Код:
функция getdate() - возвращает системное время;
функция DATEDIFF() - возвращает разницу между двумя временными точками (http://www.megalib.com/books/1482/html/vsfctdatediff.htm)
[COLOR=Red]Для оформления кода используй тэги code. Модератор.[/COLOR]