Здесь я использую SQL Server 2008. Я унаследовал старое веб-приложение, которое умирает и заменяется совершенно новым веб-приложением. Новый проект запущен, но старый будет существовать в течение следующих полутора месяцев для переходного периода.Устранение неполадок Простой триггер SQL Server
В этом случае необходимо выполнить действие, когда кто-то добавляет новую запись в таблицу на SQL Server с помощью этого приложения. Старый исходный код довольно приветлив (серьезно, без контроля версий до моего приезда), и я не могу позволить себе тратить время на то, чтобы что-то совместить, чтобы я мог получать уведомление по электронной почте с помощью старого приложения.
Моя мысль - использовать триггер SQL Server для отправки электронной почты ПОСЛЕ INSERT. На самом деле это все, что я хочу: всякий раз, когда новая запись (и она всегда одна, а не десятки) вводится в таблицу, я хочу отправить себе и еще одному счастливчику электронное письмо. Я никогда не делал этого в 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 = '[email protected], [email protected]',
@subject = 'Old Registration Request - New Record',
@body = 'Somebody decided to register using the old system.'
END
GO
Я получаю эту ошибку, когда я пытаюсь выполнить это создать заявление:
Невозможно создать триггер на «OldJunk.dbo. JunkTable ', поскольку цель не находится в текущей базе данных.
Заранее за вашу помощь.
Вы должны быть ** в ** базе данных «OldJunk», а затем создать триггер CREATE TRIGGER NotificationMail ON [dbo]. [JunkTable] '- вы не можете использовать трехчастную' (базу данных). (Схема). (object) 'нотация в определении триггера –
Я был связан с схемой и имел перед этим запуск запроса в соответствующей базе данных. Когда я пытаюсь убить (базу данных). (Schema). (Object) в пользу (схемы). (Object), он дает это сообщение: Объект 'dbo.JunkTable' не существует или недействителен для этой операции. Всякий раз, когда я просто использую (объект), я получаю следующее: объект «JunkTable» не существует или недействителен для этой операции. – shubniggurath
Я полагаю, что я не могу понять, что вы подразумеваете под «в базе данных OldJunk» - я подключен к схеме и могу выполнять запросы на таблицах - есть ли для этого больше? – shubniggurath