Ответ 1
Базы данных ориентированы на набор и триггеры ничем не отличаются. Триггер срабатывает, когда выполняется какая-либо операция, и эта операция может влиять на несколько строк. Таким образом, вопрос "Say I want to know the Primary Key of that row"
является неправильным. Может быть добавлено несколько строк.
SQL Server предоставляет две специальные таблицы для триггеров AFTER с именем inserted
и deleted
, которые представляют строки, которые были вставлены или удалены действием и структурированы одинаково с затронутой таблицей. Триггер обновления может заполнять как inserted
, так и deleted
, тогда как триггер insert только заполняет таблицу inserted
.
Из комментариев:
но получатель электронной почты будет определяться на основе значения во второй таблице, где идентификатор внешнего ключа находится в первой таблице (которая является с триггером
Ответ на этот вопрос заключается в использовании таблицы inserted
(которая, опять же, вы должны предполагать, может иметь несколько строк) для циклического перехода по строкам и отправки электронной почты. Однако я бы рекомендовал не вводить электронную почту в триггер. Вместо этого я бы рекомендовал поместить эту логику в хранимую процедуру и отправить ее по электронной почте.
Для справки: Создать триггер