Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2012, 11h49   #1
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
Par défaut Insert d'une table vers une autre

J'aimerai faire un insert de donnée d'une table x vers une table y sans avoir de doublons donc ne copier que les valeurs qui n'existe pas dans la table Y .
Les 2 tables sont indentiques .

Voici mon test mais ne fonctionne pas
INSERT INTO table Y
select distinct from (select valeur1 from table X union all select valeur1 from table Y)

Quelqu'un peut il m'aider ?
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 12h07   #2
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
Euh, comment en faisant un union all vous pouvez espérer que les valeurs de Y ne se retrouvent pas dans le insert ???
Quitte à utiliser de l'ensembliste, utilisez EXCEPT.
Une requête avec NOT EXISTS serait peut-être plus pertinente, cela dit.
Rei Ichido est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 12h11   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Vous devez rajouter une clause WHERE NOT EXISTS ou utiliser un INSERT combiné avec un EXCEPT.

Exemple :

Code :
1
2
3
4
5
6
INSERT INTO T_Y
SELECT DISTINCT *
FROM   T_X 
EXCEPT
SELECT * 
FROM T_Y
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 14h49   #4
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
oups !!!
J'ai cloturé trop vite , le test de doublon dans le code ci dessous concerne toute la table .Voici mon code :

Code :
1
2
3
INSERT INTO tableY 
SELECT DISTINCT * FROM tableX
EXCEPT SELECT * FROM tableY
Mais je ne veux faire le test de doublon que sur une colonne de ma table x et Y
J'ai essayé ceci mais cela ne fonctionne pas quand j'ai plusieurs valeurs
Code :
1
2
3
 
INSERT INTO tableY
SELECT * FROM tablex WHERE colonne1 = (SELECT DISTINCT colonne1 FROM tablex  EXCEPT SELECT colonne1 FROM tabley)
Merci de m'aider !!!
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 15h17   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Non, vous devez utiliser un calcul d'agrégat avec un HAVING.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 15h23   #6
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
Pourriez vous me donner un exemple ?
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h53.


 
 
 
 
Partenaires

Hébergement Web