Hallo,
ich habe einen Trigger, der Feldeinträge überwacht. Allerdings finde ich keine möglichkeit mitzuschreiben welches Feld geändert worden ist. So sieht der Trigger im Moment aus:
So, da wo !!Feldname!! steht, muss der geänderte Feldname eingetragen werden. Hat da jemand schonmal was mit gemacht und einen Tip für mich?
Gruß
Jan
ich habe einen Trigger, der Feldeinträge überwacht. Allerdings finde ich keine möglichkeit mitzuschreiben welches Feld geändert worden ist. So sieht der Trigger im Moment aus:
PHP-Code:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Jan S.
-- Create date: 23.06.2008
-- Description: Feldüberwachung
-- =============================================
ALTER TRIGGER [dbo].[JFG_Trg_History3]
ON [dbo].[tblAS0002]
AFTER UPDATE
AS
DECLARE @rc AS int
SET @rc = @@ROWCOUNT
IF @rc=0
Return
IF @rc = 1
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
--- SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO [dbo].[tblAS0002_EX0006] SELECT
Id,IdUserModify,current_timestamp,IdUserModify,current_timestamp,UID,
NULL, NULL, '!!FELDNAME!!' FROM inserted
END
ELSE
BEGIN
DECLARE @Id AS INT , @IdUserModify AS INT
DECLARE c CURSOR FAST_FORWARD FOR
SELECT Id,IdUserModify FROM inserted
OPEN c
FETCH NEXT FROM c INTO @Id,@IdUserModify
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [dbo].[tblAS0002_EX0006]
(IdAddress,IdUserCreate,TimeCreate,IdUserModify,TimeModify,Feld) VALUES
(@Id,@IdUserModify,current_timestamp,@IdUserModify,current_timestamp,'Te
st_loop')
FETCH NEXT FROM c INTO @Id,@IdUserModify
END
CLOSE c
DEALLOCATE c
END
Gruß
Jan
Kommentar