Identifiant sql server
Fermé
xspy
-
Modifié par xspy le 21/03/2011 à 09:45
productif Messages postés 39 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 9 février 2017 - 21 mars 2011 à 14:32
productif Messages postés 39 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 9 février 2017 - 21 mars 2011 à 14:32
A voir également:
- Identifiant sql server
- Identifiant et mot de passe - Guide
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
- Filezilla server - Télécharger - Téléchargement & Transfert
- Mysql community server - Télécharger - Bases de données
- Identifiant freebox server ✓ - Forum Freebox
2 réponses
productif
Messages postés
39
Date d'inscription
mardi 8 mars 2011
Statut
Membre
Dernière intervention
9 février 2017
20
21 mars 2011 à 11:38
21 mars 2011 à 11:38
Pour commencer, si on en savait un peu plus sur la raison de vouloir ce fonctionnement à "10 000", ça m'aiderait peut-être à répondre.
Ensuite il faut bien se rappeler qu'un identifiant auto-généré est généralement une valeur technique complètement abstraite et dé-corrélée de la signification de la ligne dans la table. En ce sens, cette valeur ne sert qu'à effectuer des recherches et des jointures, pas à représenter une caractéristique de la ligne.
Je proposerais plutôt de créer une colonne supplémentaire "code_ligne" qui, elle, pourrait être renseignée par un processus annexe (une procédure appelée à certains moments, un trigger) avec les valeur attendues en "10 000".
Je ne connais pas tous les détails de fonctionnement cette base, mais je pense que c'est excessivement compliqué de vouloir mettre en oeuvre cette règle de "10 000" dans un générateur d'identifiants.
Ensuite il faut bien se rappeler qu'un identifiant auto-généré est généralement une valeur technique complètement abstraite et dé-corrélée de la signification de la ligne dans la table. En ce sens, cette valeur ne sert qu'à effectuer des recherches et des jointures, pas à représenter une caractéristique de la ligne.
Je proposerais plutôt de créer une colonne supplémentaire "code_ligne" qui, elle, pourrait être renseignée par un processus annexe (une procédure appelée à certains moments, un trigger) avec les valeur attendues en "10 000".
Je ne connais pas tous les détails de fonctionnement cette base, mais je pense que c'est excessivement compliqué de vouloir mettre en oeuvre cette règle de "10 000" dans un générateur d'identifiants.
En réalité, ma base est une base annexe à Dynamics NAV (ERP).
J'ai un programme dans lequel je gère des commandes spécifiques, lignes qui seront injectées dans des tables de mon ERP spécialement créées pour ce traitement. Le problème est que mon ERP gère les numéro de lignes de commandes de 10.000 en 10.000 et en cas d'ajout d'une ligne intermédiaire son numéro sera 5000 (il divise l'espace en deux) et que si ce numéro ne se remet pas a 10.000 pour chaque commande, nous ne pourrons gérer que 2^36/10.000 (propiété de l'ERP) lignes de commandes ce qui est peu.
Je ne pense pas que savoir cela t'avances plus... je veux uniquement et clairement avoir un identifiant double en gros ! un numero de commande pour ma jointure avec ma table des enttes de commande et un numero de ligne de 10.000 en 10.000 repartant à 10.000 pour toute nouvelle commande.
J'ai un programme dans lequel je gère des commandes spécifiques, lignes qui seront injectées dans des tables de mon ERP spécialement créées pour ce traitement. Le problème est que mon ERP gère les numéro de lignes de commandes de 10.000 en 10.000 et en cas d'ajout d'une ligne intermédiaire son numéro sera 5000 (il divise l'espace en deux) et que si ce numéro ne se remet pas a 10.000 pour chaque commande, nous ne pourrons gérer que 2^36/10.000 (propiété de l'ERP) lignes de commandes ce qui est peu.
Je ne pense pas que savoir cela t'avances plus... je veux uniquement et clairement avoir un identifiant double en gros ! un numero de commande pour ma jointure avec ma table des enttes de commande et un numero de ligne de 10.000 en 10.000 repartant à 10.000 pour toute nouvelle commande.
productif
Messages postés
39
Date d'inscription
mardi 8 mars 2011
Statut
Membre
Dernière intervention
9 février 2017
20
21 mars 2011 à 14:32
21 mars 2011 à 14:32
Si je comprends bien, ce numéro de ligne n'est pas une contrainte de ta base, mais une contrainte de l'ERP en aval. Dans ce cas, utilise un générateur d'identifiant classique pour la table des lignes, id_ligne. Ensuite, définit une colonne supplémentaire code_ligne qui pourrait être nulle dans un premier temps.
Le remplissage de code_ligne se ferait par une procédure stockée appelée juste avant l'injection dans l'ERP. A moins que le nombre de lignes ne soit très important, cela pourrait probablement se faire simplement avec un curseur.
Le remplissage de code_ligne se ferait par une procédure stockée appelée juste avant l'injection dans l'ERP. A moins que le nombre de lignes ne soit très important, cela pourrait probablement se faire simplement avec un curseur.