Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 07/02/2011, 12h09   #1
Membre du Club
 
Étudiant
Inscription : septembre 2010
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 213
Points : 52
Points : 52
Par défaut copier des valeurs d'une table

Bonjour,
Peut on copier plusieurs valeurs à la fois d'une table et les insérer dans une autre??
Si oui c'est quoi la requête?
kensem est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/02/2011, 14h23   #2
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
On peut avoir un échantillon de la table à copier
et la structure de la table dans laquelle tu veux copier les valeurs ?
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 15h04   #3
Membre du Club
 
Étudiant
Inscription : septembre 2010
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 213
Points : 52
Points : 52
J'aimerai faire quelque choses qui ressemble à ça, toujours dans la même base, juste en changeant le nom de la machine le reste des valeurs ne change pas.
Code :
1
2
3
4
5
6
7
8
INSERT INTO Machines
 ([Machine])  
 VALUES ('salamonde')
SELECT [variable]
      ,[unité]
      ,[description] 
FROM Machines
WHERE Machine='artvin'
kensem est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/02/2011, 15h43   #4
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
Cette requête (qui ne peut pas fonctionner) semble vouloir
copier des valeur d'une table (machines) pour les mettre dans la même table (machines).

si le but est de copier des valeurs d'une table (Machines) pour les dupliquer dans une autre table (MachinesEnDouble), ça donne :
Code :
1
2
3
4
INSERT INTO MachinesEnDouble  ([variable],[unité],[description] )  
SELECT [variable] ,[unité],[description] 
FROM Machines
WHERE Machine='artvin'
En supposant que MachinesEnDouble possède les colonnes [variable],[unité],[description]
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2011, 11h20   #5
Membre du Club
 
Étudiant
Inscription : septembre 2010
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 213
Points : 52
Points : 52
Mais avant je veux insérer dans la colonne machine une nouvelle valeur car cette variable est une clé primaire, quand j’exécute ta requête j'ai l'erreur suivante
Citation:
Impossible d'insérer la valeur NULL dans la colonne 'Machine', table 'Synclac.dbo.Machines'
kensem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 12h18   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Vous ne spécifiez pas de valeur pour la clé primaire, or elle possède une contrainte NON NULL...

Pouvez-vous nous indiquer la structure de votre table?
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 12h52   #7
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
Il nous faut la structure des deux tables
et nous dire quelle colonne est la clé primaire
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 13h31   #8
Membre du Club
 
Étudiant
Inscription : septembre 2010
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 213
Points : 52
Points : 52
la première table contient les champs(variable, unité, description) la deuxième
(Machine,variable, valeur,unité, description)
valeur en rouge constitue mes clés primaires.
kensem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h30   #9
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

Si je comprend bien, tu cherches à faire ceci :

Code sql :
1
2
3
4
5
 
INSERT INTO Table1([variable],[unité],[description] )  
SELECT 'Salamonde', [variable] ,[unité],[description] 
FROM Table2
WHERE Machine='artvin'

NB : tu peux déjà exécuter juste la partie SELECT, ca te permet de voir ce que tu vas insérer, ensuite tu rajoute le insert une fois que c'est bon...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h44   #10
Membre du Club
 
Étudiant
Inscription : septembre 2010
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 213
Points : 52
Points : 52
Merci beaucoup
kensem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h45   #11
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
@aieeeuuuuu
excuses-moi de bricoler ton code, mais je crois qu'il marcherait mieux comme ça :
Code :
1
2
3
INSERT INTO Table2([Machine],[variable],[unité],[description] )  
SELECT 'Salamonde', [variable] ,[unité],[description] 
FROM Table1
reste la clause "WHERE Machine='artvin'" ???? (il n'y a pas de colonne Machine dans Table1)
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 15h28   #12
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par Népomucène Voir le message
@aieeeuuuuu
excuses-moi de bricoler ton code, mais je crois qu'il marcherait mieux comme ça
Non, non, tu fais bien

Une étourderie de plus... et on n'est que mardi... la fin de semaine va être difficile

disons qu'il faudrait mettre la clause where s'il veut récopier les valeurs d'une autre machine, mais dans ce cas une seule table entre en jeu (ce qu'il semble vouloir faire d'après sa première requete...). En fait je ne sais pas si il a réellement deux tables ?!? Mais il y a visiblement quelques erreurs au niveau du modèle de données...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web