update:
I update changed values in a column specifically in the other SQL script. So IF UPDATE(column_name) statement should work. For example, When I changed LATTITUDE AND LONGITUDE column in the same row, the if update() can capture the value changes while other if update(column_name) will return false as I did not update those unchanged values. But the problem is, I wish column GROUP_ID to be the same SEQUENCE value as those changes are in same row. The SEQUENCE value should only goes up when hitting next row. However, in my script, there is no way to store current SEQUENCE value in a variable.
I want to group those value changes in columns into SAME SEQUENCE value if in one row otherwise increasing sequence value.  However, SEQUENCE values always increases, is it because this update trigger fired more than once if multiple columns changed?
@COUNT_update is used to store current sequence value.
How do I fix it up then?
thanks
ALTER TRIGGER [dbo].[AUDIT_SITE_UPDATE] ON [dbo].[SITE] 
AFTER UPDATE
AS
BEGIN
    DECLARE @SITE_ID                [INT]
    DECLARE @SITE_DESCRIPTION       [varchar](1000) 
    DECLARE @SOURCE_SITE_NUMBER     [varchar](50) 
    DECLARE @LATTITUDE              [numeric](38, 10) 
    DECLARE @LONGITUDE              [numeric](38, 10) 
    DECLARE @INSERT_TIME            datetime2
    DECLARE @INSERT_USER            [varchar](256)
    DECLARE @seq_Next_Val INT=SELECT NEXT VALUE FOR Audit_Seq, 
    -- UPDATE ROW
        if exists(select * from inserted) and exists(select * from deleted)
        BEGIN
        declare @COUNT_update int;
        set @COUNT_update =convert(int, (select current_value FROM sys.sequences WHERE name = 'Audit_Seq')) ;
        if UPDATE(SITE_DESCRIPTION) 
            BEGIN   
                SELECT  @site_id=SITE_ID,
                        @SOURCE_SITE_NUMBER=SOURCE_SITE_NUMBER,
                        @SITE_DESCRIPTION=SITE_DESCRIPTION,
                        @LATTITUDE=LATTITUDE,
                        @LONGITUDE=LONGITUDE,
                        @INSERT_TIME=INSERT_TIME,
                        @INSERT_USER=INSERT_USER 
                FROM deleted;
                        INSERT INTO  AUDIT_SITE(site_id,GROUP_ID,ACTIVITY,SOURCE_SITE_NUMBER,COLUMN_NAME,OLD_VALUE,NEW_VALUE,INSERT_TIME,INSERT_USER) 
                    VALUES( @SITE_ID,@COUNT_update,'UPDATE',@SOURCE_SITE_NUMBER,'SITE_DESCRIPTION',(SELECT SITE_DESCRIPTION FROM deleted)
                    ,(SELECT SITE_DESCRIPTION FROM inserted),@INSERT_TIME,@INSERT_USER)
            END
         if UPDATE(LATTITUDE)
            BEGIN   
                SELECT  @site_id=SITE_ID,
                        @SOURCE_SITE_NUMBER=SOURCE_SITE_NUMBER,
                        @SITE_DESCRIPTION=SITE_DESCRIPTION,
                        @LATTITUDE=LATTITUDE,
                        @LONGITUDE=LONGITUDE,
                        @INSERT_TIME=INSERT_TIME,
                        @INSERT_USER=INSERT_USER 
                FROM deleted;
                        INSERT INTO  AUDIT_SITE(site_id,GROUP_ID,ACTIVITY,SOURCE_SITE_NUMBER,COLUMN_NAME,OLD_VALUE,NEW_VALUE,INSERT_TIME,INSERT_USER) 
                    VALUES( @SITE_ID,@COUNT_update,'UPDATE',@SOURCE_SITE_NUMBER,'LATTITUDE',(SELECT LATTITUDE FROM deleted)
                    ,(SELECT LATTITUDE FROM inserted),@INSERT_TIME,@INSERT_USER)
            END
        if UPDATE(LONGITUDE)
            BEGIN
                SELECT @site_id=SITE_ID,@SOURCE_SITE_NUMBER=SOURCE_SITE_NUMBER,@SITE_DESCRIPTION=SITE_DESCRIPTION
            ,@LATTITUDE=LATTITUDE,@LONGITUDE=LONGITUDE,@INSERT_TIME=INSERT_TIME,@INSERT_USER=INSERT_USER FROM deleted;
                        INSERT INTO  AUDIT_SITE(site_id,GROUP_ID,ACTIVITY,SOURCE_SITE_NUMBER,COLUMN_NAME,OLD_VALUE,NEW_VALUE,INSERT_TIME,INSERT_USER) 
                    VALUES( @SITE_ID,@COUNT_update,'UPDATE',@SOURCE_SITE_NUMBER,'LONGITUDE',(SELECT LONGITUDE FROM deleted)
                    ,(SELECT LONGITUDE FROM inserted),@INSERT_TIME,@INSERT_USER)            
            END
        END
END

