Bonjour,
Dans le but de pouvoir annulé des opérations faite sur une table j'ai activé la capture des changements (cdc).
Cette table contient plusieurs arbres qui ont leur identifiants d'arbre.
Pour se faire j'ai créer une table historique dans laquelle j'ajoute via les procédure stockés de modification un libellé qui servira à connaitre les modifications coté utilisateur.
Je parviens bien à récupérer la date de début de la transaction et a créer le libellé mais je n'arrive pas à récupérer le $__start_lsn associé.
Pour se faire j'ai essayé de faire les modifications et calculer le libellé et la date de début de la transaction, finir la transaction et lancé la procédure qui entre les valeurs dans a table historique.
Mon problème est le suivant : la procédure n'arrive pas à récupérer le $__start_lsn associé, mais si je fait la même requête manuellement le résultat est le bon.
La requête étant la suivante :
où DEV_ID est l'identificateur de l'arbre et DVT_TSTAMP est la date de début de la transaction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT @SLN=C.__$start_lsn FROM [cdc].[lsn_time_mapping] AS B INNER JOIN [cdc].[dbo_T_DEVPART_DPT_CT] AS C ON B.start_lsn=C.__$start_lsn WHERE C.DEV_ID=@DEV_ID AND B.tran_begin_time=@DVT_TSTAMP;
L'identificateur de l'arbre est présent ici juste pour être sur que si il y a plusieurs transaction au même instant t le bon est choisi.
Merci d'avance.
Partager