begin process at 2012 05 26 17:09:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Besoin d'aide pour ma base de données

 > 

Insertion auatomatique de GUID sous sql serveur 2000


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Insertion auatomatique de GUID sous sql serveur 2000

lundi 30 mai 2005 à 10:05:25 | Insertion auatomatique de GUID sous sql serveur 2000

Arthenius

Membre Club
Salut tout le monde,

voila ne souhaitant plus utiliser les compteurs auto-incrementer pour mes primary key (car je souhaite pouvoir intégrer dans une même BDD les Bdds de différents site et donc pour éviter les pbs de synchronisation..), je voudrais utiliser les GUID (ou unique identifier)

Seulement voila les choses que j'ai vue disais qu'il fallait générer au niveau programme le guid et faire l'insert avec le guid générer.

Moi je souhaiterais une solution plus simple, cad que la BDD ce charge de générer le guid (comme elle le fait pour les compteurs autoincrementer), la chose est -elle possible ???

Merci pour vos lumieres...

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

lundi 30 mai 2005 à 11:51:54 | Re : Insertion auatomatique de GUID sous sql serveur 2000

shaiulud

Il ne me semble pas possible de le faire nativement.
En effet que se soit MySQL, SQL Server, Oracle, Sybase, PostgreSQL, Access.
Le clé autoincrémentale ou séquence sont de la forme (valeur max+1).

de plus l'utilisation d'un identifiant "unique" généré doit être fait avec une méthode qui garantisse bien l'unicité de la clé (càd sans collision) sous peine d'avoir une clé en double.

Peut être devrai tu revoir tes séquences pour définir une valeur de départ pour chaque base afin de ne pas avoir de doublon. (propriété IDENTITY(nbDepart, 1))

par ex:
ALTER TABLE nomTable ADD
column_b INT IDENTITY(10000, 1)
CONSTRAINT column_b_pk PRIMARY KEY
lundi 30 mai 2005 à 12:10:42 | Re : Insertion auatomatique de GUID sous sql serveur 2000

Arthenius

Membre Club
Réponse acceptée !
moui et non

cette méthode permettrait effectivement que cela fonctionne un temps...
mais il y arrivera forcement un jour ou le compteur d'un des sites arrivera au niveau du compteur d'un autre site...je pense notamanet à une gestion des mouvements de stocks qui est enormenent solicite de maniere journaliere...

et la c la cata...

après reflexion, je pense que nous allons gérer X base de données bien séparés avec réplication sur les différents sites et remontés d'infos , etc...
la chose semble plus pratique et ainsi nous eviterons les pb de synchro de BDD, et ou d'optimisation  sans monter une usine pour mettre en place les guid :o)

merci en tout cas de ton interet

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

lundi 30 mai 2005 à 22:10:00 | Re : Insertion auatomatique de GUID sous sql serveur 2000

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Les GUID sont uniques,
c'est une clé 128 bits générés aléatatoirement, c'est un nombre parmis 2^128
donc il faut le faire expres pour avoir 2 GUID indentique meme dans une base de données.
http://www.microsoft.com/france/msdn/technologies/technos/windows/info/info.asp?mar=/france/msdn/technologies/technos/framework/info/2004-02-05-strongnames.html
pour plus d'infos

Les UID peuvent être généré en TSQL par NEWID()

select newid() , ....
insert newid(),...

Le probleme de la synchrosation est que la procédure stockée
si la synchro est faite par la meme procedure stockée -->
deux appels a newid() --> enregistrements différents.

Si tu compares les bases et que tes ordres insert de synchro ont les memes UID
tu n'auras pas de problemes.

Le deuxieme probleme, est surtout que si tu enregistres un ensemble d'enregistrements il faut aller en base pour retrouver les valeurs des GUID inserés.

Ex. pour les tables pointants sur elles meme comme les arbres.

C'est à toi de voir.
Soit tu mets les GUID dans les procs stocks et la les perf sont nmoindres, sinon
dans le programme et la le nombre de requetes peut etre optimale.

Voila

mardi 31 mai 2005 à 09:16:59 | Re : Insertion auatomatique de GUID sous sql serveur 2000

Arthenius

Membre Club
ok merci je vais explorer cette voie :o)

et tester ce newid..
rine ne m'empeche de faire 2 procedure stockee, une pour l'utilisation "courante" qui fait appel a la fonction newid() et une pour la synchro qui prend les données tel quel et roule..

merci de ta réponse

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."



Cette discussion est classée dans : générer, sql, insertion, guid, auatomatique


Répondre à ce message

Sujets en rapport avec ce message

Insertion de la date seulement (SQL Server 2005) [ par OmarEK ] Salut,Est ce qu'il y a un moyen pour inserer que la date dans une table d'une base de données SQL au lieu de mettre la date et l'heure, tout en suppos Message de raise_application_error dans les triggers [ par LAFONT ] Bonjour J'ai un trigger très simple : je veux interdite l'insertion dans certains cas . Comme le ROLLBACK, COMMIT est interdit dans le trigger, j'uti Échec de l'ouverture de session de l'utilisateur'NomPC\UserName'. (.Net SqlClient Data Provider) [ par papiras ] Bonjour à tous,cette erreur vous êtes peut être familière. Si elle a déjà été résolu sur ce forum, merci de me communiquer le lien.Sinon voici les dét importation exportation donnee de sql vers msproject [ par maryyem ] Salut les amis, j'ai un problème dans mon projet en vb.net 2005 avec SQL server 2000 c'est celui de pouvoir importer et exporter des données à partir sql server [ par mahamourta ] salut svp lorsque je fais une insertion dans une base de donnee sous sql server ,le format de la date est annee-mois-jour,alors que je veux un form sql server [ par mahamourta ] salutsvp lorsque je fais une insertion dans une base de donnee sous sql server, le format de la date est anee-mois-jours,alors que je veux un format j problème d'installation SQL server 2005 [ par vekta ] Bonjour, je suis sous XP édition familiale version 2002 SP3. Je rencontre le message d'erreur suivant lors de l'installation de sql server 2005 : "L SQL MS Querry Faire une somme Par jour [ par enio29 ] bonjour à tous. Excusez moi par avance, je crain que pour ma première intervention le message soit mal placé... Alors j'ai des bases sur AS400 que j Connexion distante à une BD sur SQL Server [ par cascadox ] Bonjour, j'ai fait une application que je veux rendre accessible sur le réseau pour cela j'ai installer SQLServer sur la machine hot et le client sur


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,342 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales