---- Справочник_видов_работ - FOR INSERT, UPDATE  ----
  -- при удалении записи из Справочника_видов_работ удаляем записи из Справочника_подработ, где код удаляемой записи фигурирует как Код_вида_работы или как Код_вида_подработы
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[OnWorkTypeUpdate]') and xtype = N'TR')
drop trigger [dbo].[OnWorkTypeUpdate]
GO
CREATE TRIGGER OnWorkTypeUpdate ON [dbo].[Справочник_видов_работ] 
FOR INSERT, UPDATE
AS
  if UPDATE(Код_типа_объекта)
    if exists(
      SELECT 1 FROM Работа
        INNER JOIN Объект ON Объект.Код_объекта = Работа.Код_объекта
        WHERE Код_вида_работы in (SELECT Код_вида_работы FROM deleted) 
            AND  Объект.Код_типа_объекта not in (SELECT Код_типа_объекта FROM Inserted))
    begin
      RAISERROR ('Ошибка при попытке установить Код_типа_объекта (таблица Справочник_видов_работ). Нельзя изменить Тип_объекта, потому что имеются Работы данного типа, созданные для имеющегося типа объекта',16,1)
      ROLLBACK TRANSACTION
    end  
