1.5k Aufrufe
in Datenbanken von ralfh Mitglied (227 Punkte)
Hi ,
wenn ich den Trigger laufen lasse, bekomme ich das gewünschte Ergebnis, wenn die Änderung in Spalte "Name" gemacht worden ist.

Wenn ich eine Änderung in der Spalte Vorname mache, bekomme ich nur den neuen Wert.

Woran kann das liegen ?

CREATE TRIGGER [dbo].[Kunden_tru] ON [dbo].[Kunden]
WITH EXECUTE AS CALLER
FOR UPDATE
AS
DECLARE @a VARCHAR(255)
DECLARE @b VARCHAR(14)
DECLARE @c VARCHAR(14)
DECLARE @d Datetime
DECLARE @e Datetime
declare @aa varchar (90)
declare @spalte varchar(90)

IF UPDATE(Name)
set @spalte = 'Name'
SET @a = (SELECT deleted.Name FROM deleted)
SET @b = (SELECT inserted.Name FROM inserted)


IF UPDATE(Vorname)
set @spalte = 'Vorname'
SET @a = (SELECT deleted.Vorname FROM deleted)
SET @b = (SELECT inserted.Vorname FROM inserted)



SET @c = @a + ' / ' + @b
SET @d = GETDATE()
set @e = (select Aufgenommen_am from deleted)
-- set @aa = COLUMNS_UPDATED()


insert into TBL_Log_Bewegung values(@c,'Kunden',@spalte,@d,@e)
GO

2 Antworten

0 Punkte
von rahi Experte (1.5k Punkte)
Hallo RalfH,

Setze mal explizit BEGIN...END-Blöcke fü die IF-Anweisung. Dann wird schnell klar, warum es
nicht funktioniert.

Gruß
Ralf
0 Punkte
von ralfh Mitglied (227 Punkte)
Hallo Rahi,
Danke für den Hinweis.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...