Domanda

l'ID utente sulla stringa di connessione non è una variabile ed è diverso dal id utente (può essere GUID per esempio) del programma. Come si fa a Registro di controllo cancella se la tua stringa di connessione id utente è statico?

Il posto migliore per accedere inserimento / aggiornamento / cancellazione è attraverso i trigger. Ma con la stringa di connessione statica, è difficile registrare che eliminare qualcosa. Qual è l'alternativa?

È stato utile?

Soluzione

Con SQL Server, è possibile utilizzare CONTEXT_INFO per passare informazioni al grilletto.

Io uso questo nel codice (chiamato da applicazioni web) dove devo utilizzare i trigger (ad esempio molteplici percorsi di scrittura sul tavolo). Questo è dove non può mettere la mia logica nelle stored procedure.

Altri suggerimenti

Abbiamo una situazione simile. La nostra applicazione web corre sempre come lo stesso utente del database, ma con diversi utenti logiche che le tracce di applicazioni e controlli.

In genere passa l'ID utente logico come parametro in ciascuna procedura memorizzata. Per monitorare l'elimina, in genere non eliminare la riga, basta contrassegnare lo stato come cancellato, impostare i campi LastChgID e LastChgDate conseguenza. Per le tabelle importanti, dove teniamo un registro di controllo (una copia di ogni stato del cambiamento), usiamo il metodo di cui sopra e un trigger copia il riga a una tabella di controllo, il LastChgID è già impostato correttamente e il grilletto non ha bisogno di preoccuparsi su come ottenere l'ID.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top