Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sql Server 2005 Trigger accesso MSACCESS.EXE
mercoledì 17 marzo 2010 - 10.57
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fgiusti
Profilo
| Newbie
3
messaggi | Data Invio:
mer 17 mar 2010 - 10:57
Ciao scusate è la prima volta che mi trovo qui e vi chiedo aiuto...
Allora ho un problema di sicurezza e non conosco bene SQL SERVER 2005, c'è qualcuno che mi accede al DB con MSACCESS.EXE e mi aggiorna un campo di una tabella, come faccio a fare una procedura o trigger che mi controlla se questo campo viene aggiornato e mi logga dentro un altra tabella chi è stato, il giorno, il dato nuovo e quello vecchio e anche il nome del terminale???
Io uso di più oracle e li non avrei problemi, pero con SQL SERVER ne ho...
Ciao A tutti e grazie...
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 17 mar 2010 - 11:16
>Allora ho un problema di sicurezza e non conosco bene SQL SERVER
>2005, c'è qualcuno che mi accede al DB con MSACCESS.EXE e mi
>aggiorna un campo di una tabella, come faccio a fare una procedura
>o trigger che mi controlla se questo campo viene aggiornato e
>mi logga dentro un altra tabella chi è stato, il giorno, il dato
>nuovo e quello vecchio e anche il nome del terminale???
Ciao Fabio,
Puoi prendere spunto dal seguente thread:
http://community.ugiss.org/forums/p/920/2668.aspx
>Ciao A tutti e grazie...
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
fgiusti
Profilo
| Newbie
3
messaggi | Data Invio:
mer 17 mar 2010 - 12:15
GRAZIE TANTE, quello che cercavo... ora vediamo se becco chi è e poi....................
scusa ma per prendere il vecchio valore e anche quello nuovo??
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 17 mar 2010 - 13:08
>scusa ma per prendere il vecchio valore e anche quello nuovo??
Devi modificare il trigger di UPDATE eseguendo una JOIN tra le tabelle virtuali INSERTED (nuovo valore) e DELETED (vecchio valore).
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
fgiusti
Profilo
| Newbie
3
messaggi | Data Invio:
mer 17 mar 2010 - 14:06
scusa ma posso anche fare cosi?
DECLARE @LastNamePrima NVARCHAR(20)
DECLARE @LastNameDopo NVARCHAR(20)
SELECT @LastNamePrima = LastName FROM deleted
SELECT @LastNameDopo= LastName FROM inserted
e poi faccio la insert nella tabella passando nella VALUES (@LastNamePrima,@LastNameDopo)??
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 17 mar 2010 - 14:14
>scusa ma posso anche fare cosi?
No, in quanto se modifichi più di una riga alla volta andresti a considerare solo l'ultima riga modificata.
Devi fare una banalissima INNER JOIN tra le due tabelle virtuali.
In SQL Server un after trigger scatta 1 volta sola per transazione, non per ogni riga coinvolta dalla transazione.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !