Comment obtenir la valeur "start_lsn" dans le code de l'application
-
13-12-2019 - |
Question
La base de données suit tous les changements via le mécanisme " Change Data Capture Capture ".Je dois ajouter des informations supplémentaires sur les utilisateurs qui apportent ces modifications. Les utilisateurs suivants ne sont pas des utilisateurs SQL Server.L'autorisation de sécurité est effectuée via un mécanisme extérieur.
Je veux ajouter une table d'assistance avec des colonnes " start_lsn " et " userid " pour associer une transaction avec l'utilisateur autorisé.
Y a-t-il un moyen de déterminer la valeur "
La solution
actuellement, j'ai trouvé la solution suivante:
1)
-
Créez une table supplémentaire (par exemple, l'utilisateur
"useractivity" ), qui a le "ID" et colonnes; -
Utilisez la colonne "ID" comme clé primaire;
-
Activez l'option CDC pour ce tableau.
2)
-
envelopper toutes les opérations de modification de données avec une portée
transaction ; -
Ajoutez un nouvel enregistrement de données dans cette table avec le courant
"userid" pendant une transaction particulière: -
commence
transaction exclusive
-
-
effectuer "manipulation de données";
-
Insérez des informations sur "userid" dans la table
Table.
Étant donné que la transaction est exclusive et que toutes les opérations ont été effectuées dans une seule portée de transaction, la valeur
Après cela, à l'aide de l'opérateur de jointure, fusionnez les données de la table