Avatar billede glacier Nybegynder
15. september 2008 - 13:15 Der er 8 kommentarer og
1 løsning

Delete trigger

Hej

Jeg vil gerne lave en trigger, på en mssql 2005 server, som bliver aktiveret når der bliver slettet en/flere records i en specifik tabel.
Når triggeren bliver aktiveret skal den samle info omkring hvornår deletene er sket, hvilken bruger/application der har lavet delete, hvad der er blevet slettet, og evt. antallet af records som er blevet slettet.

Kan dette lade sig gøre og iså fald hvordan.
Avatar billede arne_v Ekspert
15. september 2008 - 13:23 #1
Ja.

Utestet:

CREATE TRIGGER usp_delete_logger ON dintabel
FOR DELETE
AS
INSERT INTO logtabel VALUES(GETDATE(),USER,SELECT COUNT(*) FROM DELETED)
Avatar billede glacier Nybegynder
15. september 2008 - 16:09 #2
Det virker umiddelbart triggeren som den skal.
Jeg kan dog ikke få counteren til at virke. Jeg får en syntaxfejl i nærheden af "select".

Ved du derudover om det kan lade sig gøre at hente sql strengen ud? f.eks. "delete * from test where id=1" eller om man kan hente where-parameteren ud?
Avatar billede arne_v Ekspert
15. september 2008 - 16:39 #3
Saa er du nok noedt til at have en variabel:

CREATE TRIGGER usp_delete_logger ON dintabel
FOR DELETE
AS
DECLARE @n INTEGER
SET @n = (SELECT COUNT(*) FROM DELETED)
INSERT INTO logtabel VALUES(GETDATE(),USER,@n)
Avatar billede arne_v Ekspert
15. september 2008 - 16:40 #4
Nej. Jeg tror ikke at du kan faa WHERE betingelsen.

Hvis du vil logge det, saa skal du have logget de udfoerte SQL saetninger - ikke
bruge en DELETE trigger.
Avatar billede glacier Nybegynder
15. september 2008 - 16:45 #5
Hvordan vil du logge sqlsætninger hvis du skulle gøre det?
Avatar billede arne_v Ekspert
15. september 2008 - 17:12 #6
Det nemmeste er at logge dem i applikationen !

Ellers skal man finde en database specific server opsaetning for det.
Avatar billede arne_v Ekspert
15. september 2008 - 17:13 #7
Avatar billede glacier Nybegynder
16. september 2008 - 10:26 #8
super, smider du lige et svar?
Avatar billede arne_v Ekspert
16. september 2008 - 10:35 #9
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester