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