OVH Cloud OVH Cloud

Aide sur une requête

4 réponses
Avatar
John
Bonjour,

j'ai une table avec une valeur de type Identity avec Identity Seed = 1 qui
est une table de logs.

existe-t-il une requête simple pour trouver les "trous" dans cette table
(connaître les numéros de lignes qui ont été supprimées)

Merci

4 réponses

Avatar
Fred BROUARD
Bonjour,

John a écrit:
Bonjour,

j'ai une table avec une valeur de type Identity avec Identity Seed = 1 qui
est une table de logs.

existe-t-il une requête simple pour trouver les "trous" dans cette table
(connaître les numéros de lignes qui ont été supprimées)



C'est extrémement dangereux de "récupérer" les trous... Car en cas de
restauration que ferez vous des doublons ?
Par principe une clef consommée ne doit jamais être réutilisée.
Sachez qu'a raison d'une insertion par seconde, vous arriverez au bout du
compteur pour un type INTEGER dans 68 ans !

Si vous voulez quand même retrouver les trous, il suffit d'ajouter à votre base
une table de tous les entiers et de faire la différence ensembliste limité à MIN
et MAX de votre clef.

A lire : http://sqlpro.developpez.com/cours/clefs/

A +


Merci





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
John
> C'est extrémement dangereux de "récupérer" les trous... Car en cas de
restauration que ferez vous des doublons ?
Par principe une clef consommée ne doit jamais être réutilisée.
Sachez qu'a raison d'une insertion par seconde, vous arriverez au bout du
compteur pour un type INTEGER dans 68 ans !



Je ne cherche pas à récupérer les trous. Je cherche juste à savoir combien
de suppressions de lignes il y a eu car cette table est sensée ne pas faire
l'objet de suppression.

Si vous voulez quand même retrouver les trous, il suffit d'ajouter à votre


base
une table de tous les entiers et de faire la différence ensembliste limité


à MIN
et MAX de votre clef.




Merci
Avatar
Gilles
Tu prend le max du compteur - le select count *
et tu as ta réponse :-)


GIlles
Avatar
John
> Tu prend le max du compteur - le select count *
et tu as ta réponse :-)



Ah oui...
Merci