Séquence d'incrémentation dans SQL Server 2000 - SQL/NoSQL - Programmation
Marsh Posté le 04-07-2005 à 14:26:07
Bon personne pour ma rescousse !
Merci ca fait plaisir
Bref, je me suis creuse un peu la tete dessus et je pars maintenant sur un trigger du style
Code :
|
Le problème c'est que je ne vois pas comment récupérer les données qui doivent être insérées avant qu'elles ne le soient, pour modifier si besoin est l'id, et finalement insérée une ligne correcte.
En tout cas si le trigger pouvait le faire, ca me permettrait de controle le max des id et de revenir a 0 si besoin, et aussi de vérifier si l'id qu'on souhaite insérer n'est pas déjà présents (dans ce cas on saute au prochain) !
Quelqu'un peut m'aider ? Merci !
Marsh Posté le 04-07-2005 à 15:51:58
Bon, je rame toujours mais j'essaye d'explorer de nouvelles pistes :
par exemple, est-ce que je peux récupérer avec une requête les identifiants d'une colonne (non soumise à l'auto incrément) qui ne sont pas utilisés (récupérer les trous d'id en fait) ou au moins un de ceux-là pour me permettre d'enclencher l'insertion d'une ligne seulement.
C'est tout ce que je veux
Marsh Posté le 05-07-2005 à 21:20:17
Hmmm...
Un truc comme ça peut-être ?
Code :
|
Sortie :
Code :
|
Marsh Posté le 05-07-2005 à 21:25:08
PS: par contre, t'as pas intérêt à avoir beaucoup de lignes, parceque ça va vite rammer !
Marsh Posté le 05-07-2005 à 21:29:03
A noter que ça tient bien les transactions :
Code :
|
Code :
|
Marsh Posté le 06-07-2005 à 09:54:37
Merci pour ta soluce, enfin j'en ai trouvee une autre dans la doc de SQL Server 2000 que j'ai adapté, ca donne ca :
Code :
|
Ca marche bien mais je sais pas si ca risque pas d'être assez lent pour ma table qui contiendra 2 000 000 d'enregistrements !
Marsh Posté le 04-07-2005 à 10:54:41
Voilà, ma base est quasiment finie
Mais en réfléchissant à l'utilisation à la longue, je crois que mes auto-incréments définis sur 4 octets risquent peut être de poser des problèmes à un moment.
J'aimerais bien repartir du début pour les identifiants mais l'auto-incrément de SQL Server 2000 ne le fait pas (il plante arrivé au bout).
Et vu que les identifiants auront déjà été utilisé une fois, peut-être que certains seront encore présents dans la base, donc faudrait qu'on puisse incrémenter mais aussi sauter les id déjà utilisés (si c'est pas possible, au moins que je puisse le faire redémarrer de 0)
Merci !