@nabokovsafran

Как получить значения из удаляемой записи в MS SQL SERVER?

Есть три таблицы. Две из них связаны с третьей посредством внешних ключей.
В триггере на удаление необходимо как-то получить значение первичного ключа удаляемой строки, чтобы по этому первичному ключу удалить строки из оставшихся двух таблиц. Собственно, как считать значения из удаляемой строки?
  • Вопрос задан
  • 696 просмотров
Решения вопроса 1
tsklab
@tsklab Куратор тега Transact-SQL
Здесь отвечаю на вопросы.
В триггере таблица deleted содержит удаляемые строки (повторяю "сроки", а не одну строку). Например:
CREATE TRIGGER PersonDelete ON [Person] FOR DELETE AS 
BEGIN
  SET NOCOUNT ON 
  -- [dbo].[Variant]
  DELETE FROM Variant WHERE (Variant.Kind = 'P') AND (Variant.[Object] IN ( SELECT ID FROM deleted))
  -- [dbo].[Internet]
  DELETE FROM Internet WHERE (Internet.Kind = 'P') AND (Internet.[Object] IN ( SELECT ID FROM deleted))
END
--
GO

Или соединение, например:
CREATE TRIGGER AttributeValueUpdateDelete ON FilmAttributeValue FOR UPDATE, DELETE AS 
BEGIN
  SET NOCOUNT ON 
  UPDATE FilmAttributeGroup 
    SET Uses = (SELECT COUNT(*) FROM FilmAttributeValue WHERE ([Group] = deleted.[Group]))
    FROM FilmAttributeGroup 
      INNER JOIN deleted ON FilmAttributeGroup.ID = deleted.[Group]
END
--
GO
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы