Страница 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пасибо