Copier colone table A dans table B

edmotets -  
 Utilisateur anonyme -
Bonjour,
voici le probleme a resoudre:
Table A:
colones a,b,c,d
Table B:
colones e,b,g,h

Resultats souhaitee:
Table B:
colones e,f,g,h,d

come vous le constatez les deux tables ont pour commun la colone b que je peux utiliser comme clef pour la jointure.

le travail demande c'est de "updater" la table B avec la colone d de la table A. Compris d'une autre facon c'est d'ajouter la colone d de la table A a la table B.

Bien evidement j'ai commence par creer la colone "d" sur la table B, maintenant il me reste a inserer les elements de "d" de la table A dans la colone d de la table B.

J'ai essayer d'ecrire ceci:
update ...dbo.B
set B.d=(
select
d
from ...dbo.A
where A.b=B.b
)

j'obtient l'erreur suivante:

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.


En fait l'erreur retournee etait preveisible car je pense bien que j'essaye d'inserer le resultat de mon select (plusieurs lignes retournees) dans une seule ligne ce qui n'est pas possible. Doit je utiliser un curseur? ou bien existe il une methode sans curseur. Si oui priere d'ecrire l'esquisse de la procedure que se soit avec ou sans curseur


merci bien.


1 réponse

Utilisateur anonyme
 
Bonjour

UPDATE B INNER JOIN A ON B.b=A.b SET B.d=A.d
0