Помогите с синтаксом тригера

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

Доброе всем!
В SQL я не очень, поэтому нужна ваша помошь
Подскажите как написать тригер, что бы запускался в конце каждого месяца и допустим делал бы "select * from MyTable"

И второй вопрос-есть тавлица Employee. В ней есть колонка дня рождения и мыло работника. Как написать тригер что проверял бы что сягодня у когото день рождения и посылал бы ему поздщравления на мыло

Заранее благодарю
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Тригеры по-моему только на вставку/изменение/удаление бывают. Пиши хранимую процедуру и пользуйся планировщиком. В MS SQL это SQLServerAgent. В Оракле что-то подобное должно быть.
Даже самый дурацкий замысел можно воплотить мастерски
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

хранимую процедуру, это понятно, но можно поподробнее. Желательно код этой самой процедуры
Спасибо
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Дык у тебя MS SQL?
Обычная процедура, далающая то, что нужно. Может быть и запрос обычный.
Отправка письма xp_sendmail, установка на шедулер проще через EM сделать.
Если охота руками, то см sp_add_job*.
Даже самый дурацкий замысел можно воплотить мастерски
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

ну вроде разобрался. Вот только может кто подскажет как мне сделать
select * from mytable
where mydate between (теперешняя дата)- (теперешняя дата-7)
совсем замучили даты. Работаю с MSSQL 2000
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

и ещё вопрос- как отформатировать getdate() что бы получить только 12/23/2005 (dd/mm/yyyy) так как я в таблице создал колонку
с типом даных datetime в которую я вносил даный в dd/mm/yyyy формате и теперь не знаю как совместитьт этот формат с getdate()
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

1. where datediff(day, yourdate, getdate()) < 7
2. select convert(varchar, getdate(), 103)

Вообще-то внутреннее представление даты одинаково для любого исходного фортмата, так что ты форматировать можешь только приводя к переменной строкового типа.
Даже самый дурацкий замысел можно воплотить мастерски
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

Cпасибо
Ответить