Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

How To : Table hors de portée d'une transaction

8 réponses
Avatar
Gislain
Bonjour,

Comment puis-je faire pour avoir une table qui ne soit jamais impactée par
une ROLLBACK TRANS ?

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!

Je tourne en rond pour trouver une solution onorable !!!

Merci d'avance.

Gislain

8 réponses

Avatar
SQLpro [MVP]
Gislain a écrit :
Bonjour,

Comment puis-je faire pour avoir une table qui ne soit jamais impactée par
une ROLLBACK TRANS ?

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!

Je tourne en rond pour trouver une solution onorable !!!

Merci d'avance.

Gislain




Un trigger qui empêche toute suppression. Mais empêcher un ROLLBACK,
c'est impossible par définition.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Christophe
quelques idées comme ça en vrac !

ecrire dans un fichier ?
je suppose qu'il ne peut pas aller effacer les lignes du fichier ?

comme un trace par exemple -> il risque de marquer Rollback mais tu auras
tes lignes
c'est pas genial pour les perfs mais bon ...

mais surtout rien de stocké dans SQL sinon tu le perdra avec le rollback





"SQLpro [MVP]" a écrit dans le message de
news:eL8W%
Gislain a écrit :
> Bonjour,
>
> Comment puis-je faire pour avoir une table qui ne soit jamais impactée


par
> une ROLLBACK TRANS ?
>
> L'objectif est d'avoir une table qui enregistre des traces mais pour
> lesquelles les lignes ne seront jamais supprimées, même après un


ROLLBACK
> TRANS !!!
>
> Je tourne en rond pour trouver une solution onorable !!!
>
> Merci d'avance.
>
> Gislain
>
>
Un trigger qui empêche toute suppression. Mais empêcher un ROLLBACK,
c'est impossible par définition.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


Avatar
Med Bouchenafa
Effectivement pas très évident...
En choisissant le mode de récupération approppriè, une table avec une
colonne de type TEXT ou NTEXTet la commande WRITETEXT, il y a peut-être moyen
de s'en sortir....
Voir Aide en Ligne pour plus de détails
--
Bien Cordialement
Med Bouchenafa


"Gislain" wrote:

Bonjour,

Comment puis-je faire pour avoir une table qui ne soit jamais impactée par
une ROLLBACK TRANS ?

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!

Je tourne en rond pour trouver une solution onorable !!!

Merci d'avance.

Gislain





Avatar
Rudi Bruchez
Gislain a écrit:

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!




Bonjour,

une solution est de stocker les lignes de trace dans une variable de type
table, et d'insérer son contenu dans la vraie table après le rollback. Sauf
erreur, la variable table n'est pas impactée par le rollback.


--
Rudi Bruchez, MCDBA
http://www.babaluga.com/
Avatar
Gislain
J'ai déjà envisagée cette solution et elle fonctionne à merveille
Le seul pb c'est qu'elle est lourde à mettre en place (description table /
insert varTable / roolback / insert tablePersistee) lorsque l'on a une
équipe de 15 dévelpppeurs

Merci quand même

gislain



"Rudi Bruchez" <"rudi#nospam#[at]babaluga.com"> wrote in message
news:t9ww8q1hadj1.1crm3vv6wadxg$
Gislain a écrit:

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!




Bonjour,

une solution est de stocker les lignes de trace dans une variable de type
table, et d'insérer son contenu dans la vraie table après le rollback.
Sauf
erreur, la variable table n'est pas impactée par le rollback.


--
Rudi Bruchez, MCDBA
http://www.babaluga.com/


Avatar
Rudi Bruchez
Gislain a écrit:

J'ai déjà envisagée cette solution et elle fonctionne à merveille
Le seul pb c'est qu'elle est lourde à mettre en place (description table /
insert varTable / roolback / insert tablePersistee) lorsque l'on a une
équipe de 15 dévelpppeurs



Peut-être peux-tu tricher : insérer tes entrées de log dans une variable
varchar, avec un séparateur, et ensuite appeler une procédure qui parse ta
chaîne et l'insère dans ta table après le rollback. Ca te permet de faire
des fonctions / sp qui seront simplement appelées par les programmeurs.

--
Rudi Bruchez, MCDBA
http://www.babaluga.com/
Avatar
bruno reiter
peut-etre le plus simple est un RAISERROR... WITH LOG dans un trigger
pour récupérer les messages dans le log appli de NT et le log SQL

br

"Gislain" a écrit dans le message de news:

Bonjour,

Comment puis-je faire pour avoir une table qui ne soit jamais impactée par
une ROLLBACK TRANS ?

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!

Je tourne en rond pour trouver une solution onorable !!!

Merci d'avance.

Gislain



Avatar
Gislain
Le pb du RAISERROR... WITH LOG dans NT, est qu'il n'est pas très souple et
que je risque d'exploser le LOG NT car j'ai des traitements de masses
(plusieurs millions d'itérations...) !!!

Merci quand même.

Gislain

"bruno reiter" wrote in message
news:%23Qp$
peut-etre le plus simple est un RAISERROR... WITH LOG dans un trigger
pour récupérer les messages dans le log appli de NT et le log SQL

br

"Gislain" a écrit dans le message de news:

Bonjour,

Comment puis-je faire pour avoir une table qui ne soit jamais impactée
par une ROLLBACK TRANS ?

L'objectif est d'avoir une table qui enregistre des traces mais pour
lesquelles les lignes ne seront jamais supprimées, même après un ROLLBACK
TRANS !!!

Je tourne en rond pour trouver une solution onorable !!!

Merci d'avance.

Gislain