Come ottenere il valore "Start_lsn" nel codice dell'applicazione
-
13-12-2019 - |
Domanda
Il database traccia tutte le modifiche tramite il meccanismo " Modifica cattura dati ".Devo aggiungere ulteriori informazioni sugli utenti che apportano queste modifiche. I seguenti utenti non sono utenti di SQL Server.L'autorizzazione alla sicurezza viene eseguita tramite un meccanismo esterno.
Voglio aggiungere una tabella dell helper con colonne " start_lsn " e " userid> / forte>" per associare una transazione con l'utente autorizzato.
C'è un modo per determinare il valore "
Soluzione
Al momento, ho trovato la seguente soluzione:
1)
- .
-
Crea un'altra tabella (ad esempio, la "USUACTIVITY" ), che ha il "ID" e "ID utente" Colonne;
-
Utilizzare la colonna "ID" come chiave principale;
-
Abilita l'opzione CDC per questa tabella.
2)
- .
-
Avvolgere tutte le operazioni di modifica dei dati con uno scope di transazione ;
-
Aggiungi un nuovo record di dati in questa tabella con l'attuale "Userid" durante una determinata transazione:
- .
-
Begin esclusivo transazione;
-
-
esegue "manipolazione dei dati";
-
Inserisci informazioni su "Userid" nella tabella "USUACTIVITY" .
Poiché la transazione è esclusiva e tutte le operazioni sono state effettuate all'interno di un singolo ambito di transazione, il valore "Last_LSN" ( "Start_LSN" il valore "" è lo stesso. Dopodiché, utilizzando l'operatore Join, unire i dati dalla tabella "USERACTIVITY" con informazioni di manipolazione dei dati.