• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите написать процедуру в Mssql Server 2003

  • Автор темы Levi
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

Levi

Пожалуйста помогите. Мне процедурку одну написать надо на удаление из БД документа хранящегося больше 2 лет.
Документ и даты хранятся в разных таблицах и соединяются через третью таблицу по ИД.
Пример:
1)таблица документов
id_doc
номер_документа
2)таблица дат
id_date
дата создания
3)таблица соединитель
id_cdelka
id_date
id_doc
Начальная дата хранится в БД, я ее сам туда заношу в формате год.месяц.день и цепляю ее к документу, т.е. выходит следующее Документ1 был создан 2006.10.03
Эту дату нужно сравнить с текущей и если разница между ними 2 года удалить автоматически, как это сделать?
 
D

DZX

delete from [ТАБЛИЦА] where datediff(year,[ДАТА СОЗДАНИЯ ДОКУМЕНТА],getdate())>2

Удаляюся все документы созданные более двух лет назад.

Ремарка: Версии MS SQL Server
6.5, 7.0, 8.0 (2000), 9.0 (2005)
 
B

Barmutik

А зачем ханимая процедура ?

Код:
DELETE FROM таблица документов WHERE id_doc IN (SELECT id_doc
FROM таблица соединитель T1, таблица дат T2 WHERE T1.id_date = T2.id_date AND DATEDIFF(Day, T2.дата создания, Date) > 730)

Что-то где-то так ... хотя явно можно оптимальнее...
 
D

DZX

Для: sax_ol
Мы даем общее направление, мысли так сказать, а конкретная реализация - дело вопрошающего. Должен же он тоже мозгами пошевелить иначе все зря.
 
L

Levi

Для: sax_ol
У меня уже написанна все процедуры Удаление, Добавление, Редактирование это все я умею...
Я не мог разобраться каким образом сравнивать дату внесенную в базу с текущей датой...
Не нужно делать из меня тут дауна (
За ответы спасибо, благодарен...

Блни даже обидно маленько стало (
Неужели никто и никогда не просил НАПРАВИТЬ В НУЖНОЕ РУСЛО
Для: Barmutik
Для: DZX
СПАСИБО


Для: Barmutik
Я пишу для ТЭЦ прогу для автоматизации процесса формирования договоров, все вроде написал, все работает...и вот решил добавить еще автоматическое удаление, чтобы слишком базу не загромождать не нужными данными...
 
L

Levi

Для: sax_ol
Много информации, потому что на прошлых форумах меня обвинили в том, что я не корректно поставил вопрос и указал слишком мало информации, потом здесь и расписал все...Если сбило с толку то извиняюсь, и еще раз утверждаюсь в том, что сколько людей столько и мнений )
И еще можно вопрос, каким образом будет происходить сравнение, т.е. его технология?
И запрос в сравнении даты как часто будет происходить? Если довольно часто, не перегрузит ли это сервер?
P.S.
Вопрос не по теме, подскажите пожалуйста где можно скачать литературу по С++Билдер, а то в интернете ничего сам путного найти не смог, а справку не всегда разберу, приходится многое писать методом научного тыка, что не всегда помогает...

Для: sax_ol
Много информации, потому что на прошлых форумах меня обвинили в том, что я не корректно поставил вопрос и указал слишком мало информации, потом здесь и расписал все...Если сбило с толку то извиняюсь, и еще раз утверждаюсь в том, что сколько людей столько и мнений )
И еще можно вопрос, каким образом будет происходить сравнение, т.е. его технология?
И запрос в сравнении даты как часто будет происходить? Если довольно часто, не перегрузит ли это сервер?
P.S.
Вопрос не по теме, подскажите пожалуйста где можно скачать литературу по С++Билдер, а то в интернете ничего сам путного найти не смог, а справку не всегда разберу, приходится многое писать методом научного тыка, что не всегда помогает...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!