• You need to be more selective than that. Any reference to the column will turn the "UPDATE flag" on, even if the value is the same. Maybe something like this:

    ALTER TRIGGER [dbo].[trgCustomer_upd]

    ON [dbo].[Customer]

    FOR update

    AS

    SET NOCOUNT ON;

    if @@rowcount = 0

    RETURN

    DECLARE @SUPPID_changed bit

    DECLARE @MANID_changed bit

    SELECT

    @SUPPID_changed = MAX(CASE WHEN ISNULL(i.SUPPID, '-999') <> ISNULL(o.SUPPID, '-999') THEN 1 ELSE 0 END),

    @MANID_changed = MAX(CASE WHEN ISNULL(i.MANID, '-999') <> ISNULL(o.MANID, '-999') THEN 1 ELSE 0 END)

    FROM inserted i

    INNER JOIN deleted d ON d.CustID = i.CustID

    IF @SUPPID_changed = 1

    OR @MANID_changed = 1

    BEGIN

    DECLARE @raiserror_msg nvarchar(1024)

    SET @raiserror_msg = 'Cannot update ' +

    CASE WHEN @SUPPID_changed = 1 THEN 'SUPPID' ELSE '' END +

    CASE WHEN @MANID_changed = 1

    THEN CASE WHEN @SUPPID_changed = 1 THEN ' nor ' ELSE '' END + 'MANID'

    ELSE '' END + '.'

    RAISERROR (@raiserror_msg,16,1)

    ROLLBACK TRAN

    RETURN

    END

    declare @date datetime

    set @date = getdate()

    UPDATE tblCustomer

    SET dtEdited = @date

    FROM inserted Ins

    WHERE tblCustomer.CustID = ins.CustID

    INSERT INTO AuditDB..tblCustomer

    SELECT ... FROM deleted

    GO --end of trigger

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.