Страница 1 из 1

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

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

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

Заранее благодарю

Добавлено: 27 июн 2005, 16:29
AiK
Тригеры по-моему только на вставку/изменение/удаление бывают. Пиши хранимую процедуру и пользуйся планировщиком. В MS SQL это SQLServerAgent. В Оракле что-то подобное должно быть.

Добавлено: 27 июн 2005, 16:32
michael
хранимую процедуру, это понятно, но можно поподробнее. Желательно код этой самой процедуры
Спасибо

Добавлено: 27 июн 2005, 16:43
AiK
Дык у тебя MS SQL?
Обычная процедура, далающая то, что нужно. Может быть и запрос обычный.
Отправка письма xp_sendmail, установка на шедулер проще через EM сделать.
Если охота руками, то см sp_add_job*.

Добавлено: 27 июн 2005, 19:59
michael
ну вроде разобрался. Вот только может кто подскажет как мне сделать
select * from mytable
where mydate between (теперешняя дата)- (теперешняя дата-7)
совсем замучили даты. Работаю с MSSQL 2000

Добавлено: 27 июн 2005, 20:20
michael
и ещё вопрос- как отформатировать getdate() что бы получить только 12/23/2005 (dd/mm/yyyy) так как я в таблице создал колонку
с типом даных datetime в которую я вносил даный в dd/mm/yyyy формате и теперь не знаю как совместитьт этот формат с getdate()

Добавлено: 27 июн 2005, 20:53
AiK
1. where datediff(day, yourdate, getdate()) < 7
2. select convert(varchar, getdate(), 103)

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

Добавлено: 28 июн 2005, 13:38
michael
Cпасибо