OVH Cloud OVH Cloud

violations de clés

3 réponses
Avatar
romainw
Bonjour =E0 tous,

j'ai une base de donn=E9es Access, une base de donn=E9es SQL=20
Server.=20
J'ai d=E9velopp=E9 un outil avec Access qui permet d'ins=E9rer=20
les donn=E9es de la base Access dans celle SQL Server. En=20
gros, je fais des :=20
Code:=20
insert into tablecible(champ1, champ2...) select=20
champ1,champ2 from tablesource=20
Tout en respectant bien l'ordre d'insertion pour la=20
contrainte des cl=E9s =E9trang=E8res...=20
Mais chose bizarre : m=EAme lors d'insertions dans des=20
tables ind=E9pendantes de cl=E9s =E9trang=E8res, Access me=20
retourne un message d'erreur "Violation de cl=E9..."=20
Je fais bien un "set identity_insert on" avant d'ins=E9rer=20
les donn=E9es donc =E7a vient pas de l=E0...=20

Le seul moyen est donc de supprimer toutes les relations=20
et de les refaire une =E0 une par code ? (j'ai une 50aine de=20
tables...)=20

merci pour vos remarques / infos

3 réponses

Avatar
romainw
apparemment ça viendrait des champs compteur en clé
primaire...
pourtant je mets bien "set identity_insert NomTable ON"...
Avatar
zarko
Je donne pas de reponse ,
Mais a ta place je procederai de la maniere suivante :
A) je mets la base Access dans un des repertoires ou est installe
SqlServer.
B) sur SqlServer ( via entreprise manageur ) je cree un serveur liée ( Arbre
Securité )
C) Avec Analyseur de requete , je lance des 'Insert' d'acces vers SqlServer

Exemple de Requete :
Sur acces : TableAcc avec Col1 , Col2
Sur SqlServer : TableSql avec ColCol1 , ColCol2

La requete sera :
Insert into TableSql ( ColCol1 , ColCol2 ) Select Col1 , Col2 from
LienAcc...TableAcc

LienAcc : est le nom donné lors de la creation du serveur lié...

Bon , si je suis hors sujet , je n'en excuse ...







"romainw" a écrit dans le message de
news:2ba6d01c46808$4070ae10$
Bonjour à tous,

j'ai une base de données Access, une base de données SQL
Server.
J'ai développé un outil avec Access qui permet d'insérer
les données de la base Access dans celle SQL Server. En
gros, je fais des :
Code:
insert into tablecible(champ1, champ2...) select
champ1,champ2 from tablesource
Tout en respectant bien l'ordre d'insertion pour la
contrainte des clés étrangères...
Mais chose bizarre : même lors d'insertions dans des
tables indépendantes de clés étrangères, Access me
retourne un message d'erreur "Violation de clé..."
Je fais bien un "set identity_insert on" avant d'insérer
les données donc ça vient pas de là...

Le seul moyen est donc de supprimer toutes les relations
et de les refaire une à une par code ? (j'ai une 50aine de
tables...)

merci pour vos remarques / infos
Avatar
romainw
excusé...
en fait le pb vient du fait que set identity_insert on n'a
aucun effet...quand je passe les champs en int sans
compteur ça marche, donc j'ai fait ça, c'est pas trop
grave car la table est dédiée à la consultation uniquement
a+