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

Initialisation

4 réponses
Avatar
Hamet
Bonjour

J'ai une champ datetime pour toutes les lignes d'une table qui se met à Null
chaque nuit. Je ne sait pas d'ou cela vient. Comment le savoir ? (Log,
espion).
Comment puis-je savoir ce qui modifie ce champ pour toutes les ligne de ma
table ?

Merci

4 réponses

Avatar
Fred.M.
Bonjour Hamet,
Tu peux soit :
- Lancer une trace de nuit avec le SQL Profiler (notemment avec les bons
events TSQL) et en filtrant sur ta base. Tu auras ainsi l'ensemble de toutes
opérations SQL de nuit qui impactent ta base et ta table.
- De façon plus fine, tu peux créer d'une part une table T_Traces, et
d'autre part un trigger sur ta table en question dont les valeurs datetime se
remettent à NULL, de tel sorte que sur un UPDATE de ton champ DateTime tu
insères une entrée dans ta table T_Traces pour flager l'origine (user, heure
exacte de la modif, exécution d'un sp_blockerxx, etc..)

Fred.M.

"Hamet" a écrit :

Bonjour

J'ai une champ datetime pour toutes les lignes d'une table qui se met à Null
chaque nuit. Je ne sait pas d'ou cela vient. Comment le savoir ? (Log,
espion).
Comment puis-je savoir ce qui modifie ce champ pour toutes les ligne de ma
table ?

Merci


Avatar
Hamet
Merci pour la réponse.
On peut plannifier une trace de nuit avec le sql Profiler ? On ne peut pas
le faire pour les modification passées ?

"Fred.M." a écrit :

Bonjour Hamet,
Tu peux soit :
- Lancer une trace de nuit avec le SQL Profiler (notemment avec les bons
events TSQL) et en filtrant sur ta base. Tu auras ainsi l'ensemble de toutes
opérations SQL de nuit qui impactent ta base et ta table.
- De façon plus fine, tu peux créer d'une part une table T_Traces, et
d'autre part un trigger sur ta table en question dont les valeurs datetime se
remettent à NULL, de tel sorte que sur un UPDATE de ton champ DateTime tu
insères une entrée dans ta table T_Traces pour flager l'origine (user, heure
exacte de la modif, exécution d'un sp_blockerxx, etc..)

Fred.M.

"Hamet" a écrit :

> Bonjour
>
> J'ai une champ datetime pour toutes les lignes d'une table qui se met à Null
> chaque nuit. Je ne sait pas d'ou cela vient. Comment le savoir ? (Log,
> espion).
> Comment puis-je savoir ce qui modifie ce champ pour toutes les ligne de ma
> table ?
>
> Merci


Avatar
Fred.M.
> On peut plannifier une trace de nuit avec le sql Profiler ?


==> oui pas directement avec l'outil : il faut utiliser les stored proc.
sp_trace_create et sp_trace_setevent pour définir ta trace au sein d'un Job
puis planifier ce dernier.
Support sur ces procédures dispo sur l'article :
http://msdn2.microsoft.com/fr-fr/library/ms187346.aspx
Tu peux aussi plus simplement générer ce script une fois ta trace définie
dans le profiler en allant dans File - Export - Script Trace Definition - For
SQL Server 2005.

On ne peut pas le faire pour les modification passées ?


Non, le profiler capture les opérations en direct.


"Hamet" a écrit :
Merci pour la réponse.
On peut plannifier une trace de nuit avec le sql Profiler ? On ne peut pas
le faire pour les modification passées ?

"Fred.M." a écrit :

> Bonjour Hamet,
> Tu peux soit :
> - Lancer une trace de nuit avec le SQL Profiler (notemment avec les bons
> events TSQL) et en filtrant sur ta base. Tu auras ainsi l'ensemble de toutes
> opérations SQL de nuit qui impactent ta base et ta table.
> - De façon plus fine, tu peux créer d'une part une table T_Traces, et
> d'autre part un trigger sur ta table en question dont les valeurs datetime se
> remettent à NULL, de tel sorte que sur un UPDATE de ton champ DateTime tu
> insères une entrée dans ta table T_Traces pour flager l'origine (user, heure
> exacte de la modif, exécution d'un sp_blockerxx, etc..)
>
> Fred.M.
>
> "Hamet" a écrit :
>
> > Bonjour
> >
> > J'ai une champ datetime pour toutes les lignes d'une table qui se met à Null
> > chaque nuit. Je ne sait pas d'ou cela vient. Comment le savoir ? (Log,
> > espion).
> > Comment puis-je savoir ce qui modifie ce champ pour toutes les ligne de ma
> > table ?
> >
> > Merci


Avatar
Fred BROUARD
Hamet a écrit :
Merci pour la réponse.
On peut plannifier une trace de nuit avec le sql Profiler ? On ne peut pas
le faire pour les modification passées ?



si, en utilisant certains outils tiers comme ceux de lumigent ou Apex
qui permettent d'analyser le JT si vous êtes en mode de recouvrement full.

A +


"Fred.M." a écrit :

Bonjour Hamet,
Tu peux soit :
- Lancer une trace de nuit avec le SQL Profiler (notemment avec les bons
events TSQL) et en filtrant sur ta base. Tu auras ainsi l'ensemble de toutes
opérations SQL de nuit qui impactent ta base et ta table.
- De façon plus fine, tu peux créer d'une part une table T_Traces, et
d'autre part un trigger sur ta table en question dont les valeurs datetime se
remettent à NULL, de tel sorte que sur un UPDATE de ton champ DateTime tu
insères une entrée dans ta table T_Traces pour flager l'origine (user, heure
exacte de la modif, exécution d'un sp_blockerxx, etc..)

Fred.M.

"Hamet" a écrit :

Bonjour

J'ai une champ datetime pour toutes les lignes d'une table qui se met à Null
chaque nuit. Je ne sait pas d'ou cela vient. Comment le savoir ? (Log,
espion).
Comment puis-je savoir ce qui modifie ce champ pour toutes les ligne de ma
table ?

Merci








--
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 ***********************