Sql 太好了。很高兴我能帮上忙。埃米利奥太完美了!这完全符合我的需要。这么简单,但我显然在我的脑海里把它弄得更复杂了。谢谢,太好了。很高兴我能帮忙。 ALTER TRIGGER [dbo].[trg_Measure_Insert_Audit] ON [d

Sql 太好了。很高兴我能帮上忙。埃米利奥太完美了!这完全符合我的需要。这么简单,但我显然在我的脑海里把它弄得更复杂了。谢谢,太好了。很高兴我能帮忙。 ALTER TRIGGER [dbo].[trg_Measure_Insert_Audit] ON [d,sql,sql-server,Sql,Sql Server,太好了。很高兴我能帮上忙。埃米利奥太完美了!这完全符合我的需要。这么简单,但我显然在我的脑海里把它弄得更复杂了。谢谢,太好了。很高兴我能帮忙。 ALTER TRIGGER [dbo].[trg_Measure_Insert_Audit] ON [dbo].[Measures_slave] AFTER INSERT AS BEGIN SET NOCOUNT ON; DECLARE @message VARCHAR(MAX) insert i


太好了。很高兴我能帮上忙。埃米利奥太完美了!这完全符合我的需要。这么简单,但我显然在我的脑海里把它弄得更复杂了。谢谢,太好了。很高兴我能帮忙。
ALTER TRIGGER [dbo].[trg_Measure_Insert_Audit] 
   ON [dbo].[Measures_slave]
   AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    DECLARE @message    VARCHAR(MAX)

        insert into aud_Measures
        (
        measure_FK,
        [description],
        oldname,
        [newname],
        milestone
        )
select
        i.measure_PK,
        CASE
            WHEN (SELECT TOP 1 measure_name FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1) <> i.measure_name THEN 'Measure Name Changed to <b> ' + i.measure_name + ' </b>'
        END,
        (SELECT TOP 1 measure_name FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1),
        i.measure_name,
        --'Test Audit Entry',
        'Yes'

  from
        inserted i

END
select
        i.measure_PK,
        CASE
            --WHEN (SELECT TOP 1 measure_name FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1) <> i.measure_name THEN 'Measure Name Changed to <b> ' + i.measure_name + ' </b>'
            WHEN (SELECT TOP 1 measure_name FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1) <> i.measure_name SET @message = 'Measure Name Changed to <b> ' + i.measure_name + ' </b>'
            WHEN (SELECT TOP 1 calculation_steps FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1) <> i.calculation_steps SET @message = @message + 'Steps changed to:  <b> ' + i.calculation_steps + ' </b>'
        END,
        (SELECT TOP 1 measure_name FROM Measures_slave s WHERE s.slave_PK = i.slave_PK -1),
        i.measure_name,
        --'Test Audit Entry',
        'Yes'

  from
        inserted i
ALTER TRIGGER [dbo].[trg_Measure_Insert_Audit] 
   ON [dbo].[Measures_slave]
   AFTER INSERT
AS 
BEGIN
SET NOCOUNT ON;

    INSERT INTO aud_Measures
            (
            measure_FK,
            [description],
            oldname,
            [newname],
            milestone
            )

    SELECT  
            i.measure_PK,
            CASE WHEN (i.measure_name <> s.measure_name) THEN 'Measure Name Changed to <b> ' + i.measure_name + ' </b>' ELSE '' END +             -- The resulting value from this line concatenates with 
            CASE WHEN (i.calculation_steps  <> s.calculation_steps ) THEN 'Steps changed to:  <b> ' + i.calculation_steps + ' </b>' ELSE '' END,  -- the resulting value from of this line
            s.measure_name,
            i.measure_name 
            'Yes' 
    FROM Inserted i LEFT JOIN Measures_slave s ON s.slave_PK = i.slave_PK -1
    -- If you want to audit only the rows that in which there IS actually a difference in any of measure_name  or calculation_steps columns, then use the following:
    WHERE (i.measure_name <> s.measure_name) OR (i.calculation_steps  <> s.calculation_steps )
END