Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Процедура удаления в MSSQL Server 2003

19K
11 мая 2007 года
Levi
35 / / 11.05.2007
Пожалуйста помогите. Мне процедурку одну написать надо на удаление из БД документа хранящегося больше 2 лет.
Документ и даты хранятся в разных таблицах и соединяются через третью таблицу по ИД.
Пример:
1)таблица документов
id_doc
номер_документа
2)таблица дат
id_date
дата создания
3)таблица соединитель
id_cdelka
id_date
id_doc
Начальная дата хранится в БД, я ее сам туда заношу в формате год.месяц.день и цепляю ее к документу, т.е. выходит следующее Документ1 был создан 2006.10.03
Эту дату нужно сравнить с текущей и если разница между ними 2 года удалить автоматически, как это сделать?
30K
26 июня 2007 года
Andrew_Lukch
2 / / 25.06.2007
Попробуй вот так (только этот код действителен, если тебе только из "таблица_документов" удалить строку надо):
 
Код:
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 дней*/
 )
)


функция getdate() - возвращает системное время;
функция DATEDIFF() - возвращает разницу между двумя временными точками (http://www.megalib.com/books/1482/html/vsfctdatediff.htm)

[COLOR=Red]Для оформления кода используй тэги code. Модератор.[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог