>CREATE TRIGGER CK_Product_update ON [Product] >FOR UPDATE >AS >DECLARE @countFk int, @countTrans int >SELECT @countFk = count(TRAVELER.fk_product) > from Traveler where fk_product IN > (SELECT PK FROM DELETED) > >SELECT @countTrans = count(fk_product) > from Trans_sernum where fk_product IN > (SELECT PK FROM DELETED) > >IF (@countFk > 0 or @countTrans > 0) > and EXISTS ( SELECT * FROM inserted i JOIN > DELETED d ON d.pk = i.pk > WHERE d.fk_engine <> i.fk_engine > OR d.fk_assembly <> i.fk_assembly > OR d.fk_basematerial <> i.fk_basematerial > OR d.fk_parttype <> i.fk_parttype > or d.hpt <> i.hpt > or d.stage <> i.stage) > > BEGIN > PRINT 'Cannot change Products that have dependents' > PRINT 'Transaction has been cancelled' > ROLLBACK > END > >You don't need two extra counters, that was my point. You may use EXISTS the same way. E.g. if (exists (select fk from Table1 t inner join deleted on t.fk = d.PK) or ...) and ...