Bonjour =E0 tous,
J'utilise une requ=EAte INSERT pour migrer mes donn=E9es.
La requ=EAte provoque une erreur de conflit de cl=E9 primaire et s'arr=EA=
te=20
d=E9s qu'un enregistrement est d=E9j=E0 pr=E9sent
Y a t-il moyen d'obtenir le m=EAme fonctionnement que sous Access, cad qu=
e=20
la requ=EAte continue =E0 ins=E9rer les enregistrements sans conflit ?
en gros je cherche un peu de confort.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Davion
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur, c'est apparement que tu tentes d'insérer deux lignes avec la même clef primaire, ce qui est strictement interdit.
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur,
c'est apparement que tu tentes d'insérer deux lignes avec la même
clef primaire, ce qui est strictement interdit.
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur, c'est apparement que tu tentes d'insérer deux lignes avec la même clef primaire, ce qui est strictement interdit.
Hugues Marlier
Guillaume Davion a écrit:
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur, c'est apparement que tu tentes d'insérer deux lignes avec la même clef primaire, ce qui est strictement interdit.
Oui c'est bien ce que je dis, il y a conflit de PK. Mais tu ne me donnes pas de solution.
Ma clé primaire est en auto-incrément et je positionne IDENTITY-INSE RT sur ON pour écrire la clé primaire voici ma solution qui utilise une jointure gauche set IDENTITY_INSERT Tbldest ON INSERT INTO Tbldest (ID,Designation) SELECT Tblsrc.ID,Tblsrc.Designation from Tblsrc left join Tbldest on (Tblsrc.ID=Tbldest.ID) where Tbldest.I D is null
Guillaume Davion a écrit:
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur,
c'est apparement que tu tentes d'insérer deux lignes avec la même
clef primaire, ce qui est strictement interdit.
Oui c'est bien ce que je dis, il y a conflit de PK.
Mais tu ne me donnes pas de solution.
Ma clé primaire est en auto-incrément et je positionne IDENTITY-INSE RT
sur ON pour écrire la clé primaire
voici ma solution qui utilise une jointure gauche
set IDENTITY_INSERT Tbldest ON
INSERT INTO Tbldest (ID,Designation) SELECT Tblsrc.ID,Tblsrc.Designation
from Tblsrc left join Tbldest on (Tblsrc.ID=Tbldest.ID) where Tbldest.I D
is null
Ta clef primaire est bien en auto-increment? Car s'il y a une erreur, c'est apparement que tu tentes d'insérer deux lignes avec la même clef primaire, ce qui est strictement interdit.
Oui c'est bien ce que je dis, il y a conflit de PK. Mais tu ne me donnes pas de solution.
Ma clé primaire est en auto-incrément et je positionne IDENTITY-INSE RT sur ON pour écrire la clé primaire voici ma solution qui utilise une jointure gauche set IDENTITY_INSERT Tbldest ON INSERT INTO Tbldest (ID,Designation) SELECT Tblsrc.ID,Tblsrc.Designation from Tblsrc left join Tbldest on (Tblsrc.ID=Tbldest.ID) where Tbldest.I D is null
Guillaume Davion
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée sur cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie
Et pourquoi tu ne laisse pas la table destination en auto-increment et
tu n'y insérerais que la designation? Il y a une autre table liée sur
cette id qui doit être reportée à l'identique dans la base
destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour
gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de
donnée, et pas simplement d'une copie
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée sur cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie
Hugues Marlier
Oui j'ai pas mal de tables liées et donc je souhaite garder la clé d'origine. Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée su r cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie
Oui j'ai pas mal de tables liées et donc je souhaite garder la clé
d'origine.
Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et
tu n'y insérerais que la designation? Il y a une autre table liée su r
cette id qui doit être reportée à l'identique dans la base
destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour
gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de
donnée, et pas simplement d'une copie
Oui j'ai pas mal de tables liées et donc je souhaite garder la clé d'origine. Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée su r cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie
Guillaume Davion
Si tu as besoin d'un coup de main pour l'écriture du lot, n'hésite pas :)
Si tu as besoin d'un coup de main pour l'écriture du lot, n'hésite
pas :)
Si tu as besoin d'un coup de main pour l'écriture du lot, n'hésite pas :)
Philippe T [MS]
Bonjour,
Puis-je voir la requête ?
Normalement, il suffit de faire quelque chose du genre :
INSERT INTO Tbldest (ID,Designation) SELECT Tblsrc.ID,Tblsrc.Designation FROM Tblsrc WHERE Tblsrc.ID NOT IN (SELECT ID FROM Tbldest)
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Hugues Marlier" wrote in message news: Oui j'ai pas mal de tables liées et donc je souhaite garder la clé d'origine. Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée sur cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie
Bonjour,
Puis-je voir la requête ?
Normalement, il suffit de faire quelque chose du genre :
INSERT INTO Tbldest (ID,Designation)
SELECT Tblsrc.ID,Tblsrc.Designation
FROM Tblsrc
WHERE Tblsrc.ID NOT IN (SELECT ID FROM Tbldest)
----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France
"Hugues Marlier" <hugues.marlierNS@icam.fr> wrote in message
news:enXxCf8eFHA.3040@TK2MSFTNGP14.phx.gbl...
Oui j'ai pas mal de tables liées et donc je souhaite garder la clé
d'origine.
Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et
tu n'y insérerais que la designation? Il y a une autre table liée sur
cette id qui doit être reportée à l'identique dans la base
destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour
gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de
donnée, et pas simplement d'une copie
Normalement, il suffit de faire quelque chose du genre :
INSERT INTO Tbldest (ID,Designation) SELECT Tblsrc.ID,Tblsrc.Designation FROM Tblsrc WHERE Tblsrc.ID NOT IN (SELECT ID FROM Tbldest)
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Hugues Marlier" wrote in message news: Oui j'ai pas mal de tables liées et donc je souhaite garder la clé d'origine. Je vais essayer de faire un lot DTS.
merci de ton aide.
Guillaume Davion a écrit:
Et pourquoi tu ne laisse pas la table destination en auto-increment et tu n'y insérerais que la designation? Il y a une autre table liée sur cette id qui doit être reportée à l'identique dans la base destination?
Dans ce genre de cas, il peut être utilise de créer un lot DTS pour gérer tout ça de façon propre, surtout s'il s'agit d'une fusion de donnée, et pas simplement d'une copie