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
apparemment ça viendrait des champs compteur en clé primaire... pourtant je mets bien "set identity_insert NomTable ON"...
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:2ba6d01c46808$4070ae10$a301280a@phx.gbl...
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...)
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
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+
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+
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+