[SQL] insertion de données

insertion de données [SQL] - Programmation

Marsh Posté le 04-04-2001 à 15:26:04    

j'ai une table dont je veux doubler certaines données en modifiant seulement un champ
EX :
 
j'ai ma structure de Table1 avec Champ1, champ2 et champ3
je veux que pour tous les champ1 = valeur1  et champ3='1'
soit créer le même enegistrement avec les mêmes données pour champ1 et pour champ2, mais champ3='0' !
 
j'ai pensé à :
cnx.execute "insert into table1 ... select ..."
 
mais comment changer automatiquement la valeur de champ3 ?
 
si je ne le fais pas en une seule étape je ne pourrais plus différencier la copie de l'original ensuite
 
des idées ?

Reply

Marsh Posté le 04-04-2001 à 15:26:04   

Reply

Marsh Posté le 04-04-2001 à 15:30:23    

t'as essaye de faire ton select avec une valeur fixe a la place de ton champ3 ?
 
du style: insert into table1 (c1,c2,c3) select c1,c2,'0' from table1 where c1=...

Reply

Marsh Posté le 04-04-2001 à 15:32:36    

Si j'ai bien compris le truc:
 
insert into Table1 (champ1,champ2,champ3)  
select T.champ1,T.champ2,'0'
from Table1 T
where T.champ1=valeur1 and T.champ3='1';

Reply

Marsh Posté le 04-04-2001 à 15:33:34    

logiquement, après le select, c'est le nom d'un champ qu'il faut et pas son contenu !
 
mais je vais essayé quand même  
@ de suite

Reply

Marsh Posté le 04-04-2001 à 15:33:37    

Putain grillé de 2 minutes

Reply

Marsh Posté le 04-04-2001 à 15:35:20    

Non après un select tu mets ce que tu veut

Reply

Marsh Posté le 04-04-2001 à 15:36:17    

Hepil a écrit a écrit :

logiquement, après le select, c'est le nom d'un champ qu'il faut et pas son contenu !
 
mais je vais essayé quand même  
@ de suite




 
Ca dépend... En T-SQL, tu n'as pas besoin de mettre les noms de champs.
 
Ceci dit, ça rend les procédures plus lisibles, Si tu peux te le permettre, c'est pas plus mal.

Reply

Marsh Posté le 04-04-2001 à 15:37:01    

j'utilise VB6 et SQL Serveur 7

Reply

Marsh Posté le 04-04-2001 à 15:45:21    

bavo les bêtes, voilà ce que j'ai fais :
 
insert into répartition (numsous,compagnie,actuel)
select numsous,compagnie,'0' FROM répartition
WHERE numsous = '100104' and actuel = '1'
 
ET CA MARCHE
 
Merci encore tous les 3 et  @+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed