Устранение неполадок простого триггера SQL Server
Я использую SQL Server 2008 здесь. Я унаследовал старое веб-приложение, которое умирает и заменяется совершенно новым веб-приложением. Новый проект запущен и работает, но старый будет существовать в течение следующих полутора месяцев в течение переходного периода.
Вот проблема: действие необходимо предпринять, когда кто-то добавляет новую запись в таблицу в SQL Server с помощью этого приложения. Старый исходный код довольно хреновый (серьезно, без контроля версий до моего приезда), и я не могу позволить себе потратить время на то, чтобы что-то помешать, просто чтобы получить уведомление по электронной почте, используя старое приложение.
Моя мысль - использовать триггер SQL Server для отправки электронного письма ПОСЛЕ ВСТАВКИ. На самом деле это все, что я хочу: всякий раз, когда в таблицу вводится новая запись (и всегда одна, а не десятки), я хочу отправить себе и другому счастливчику электронное письмо. Я никогда не делал этого в SQL Server, но это кажется выполнимым.
Вот мой SQL-скрипт в его нынешнем виде:
CREATE TRIGGER NotificationMail
ON OldJunk.[dbo].[JunkTable]
AFTER INSERT
AS
BEGIN
EXEC msdb.dbo.sp_send_dbmail --QUESTION: I HAVE NO IDEA WHAT TO PUT HERE, WHAT FOLLOWS
-- IS JUST COPYPASTA FROM A FORUM
@recipients = 'shubniggurath@email.com, someoneelse@email.com',
@subject = 'Old Registration Request - New Record',
@body = 'Somebody decided to register using the old system.'
END
GO
Я получаю эту ошибку, когда пытаюсь выполнить этот оператор создания:
Невозможно создать триггер для "OldJunk.dbo.JunkTable", так как цель отсутствует в текущей базе данных.
Заранее спасибо за помощь.
1 ответ
Вы должны быть в OldJunk
база данных (с помощью USE ....
в SQL Server Management Studio), а затем создайте триггер, используя следующие операторы SQL:
USE OldJunk;
GO
CREATE TRIGGER NotificationMail ON [dbo].[JunkTable]
.....
Вы не можете использовать три части (database).(schema).(object)
запись в определении триггера.
Если это не сработает - тогда у вас, вероятно, нет такой таблицы - есть опечатка? Или это действительно не стол?