if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[OnObjectUpdate]') and xtype = N'TR')
drop trigger [dbo].[OnObjectUpdate]
GO
CREATE TRIGGER OnObjectUpdate ON [dbo].[Объект] 
FOR INSERT, UPDATE
AS
  if UPDATE(Код_объекта_владельца)
  begin
    if exists (SELECT 1 FROM inserted WHERE dbo.HasOwnerCycling(Код_объекта_владельца) = 1)
    begin
      RAISERROR ('Ошибка при попытке установить Код_объекта_владельца (таблица Объект). Установка значения Код_объекта_владельца вызывает цикл',16,1)
      ROLLBACK TRANSACTION
    end
   -- if not exists (select 1 from Характеристики_типов_объектов as Х1 inner join inserted on Х1.Код_типа_подобъекта = inserted.Код_типа_объекта
   --    inner join Объект on Х1.Код_типа_объекта = Объект.Код_типа_объекта AND inserted.Код_объекта_владельца = Объект.Код_объекта)
   -- begin
   --   RAISERROR ('Ошибка при попытке установить Код_объекта_владельца (таблица Объект). У данного объекта не может быть родителя такого типа',16,1)
   --   ROLLBACK TRANSACTION
   -- end
  end
