PC Easy Weblog

mai 18, 2009

SQL Server – UPDATE de lignes d’une table par un SELECT

Filed under: Développement, Utilitaires — Étiquettes : , , , — trucmuche92 @ 9:26

Pour ceux qui comme moi ne se rappelaient plus comment on mettait à jour une table à partir d’un SELECT voici un mémo :

Le principe est de se représenter dans un premier temps un SELECT (multi-table) qui contient la table que l’on veut mettre à jour.

L’exemple ci-dessous mettra a jour le champ-flag ACTIF d’une table PRODUIT en fonction du champ VISIBLE du d’une table d’association CATALOGUE_PRODUIT dans lequel il est.

1 – Représentation en SELECT

select p.pro_actif, c.pro_visible, etc…
from PRODUIT p
inner join  CATALOGUE_PRODUIT c
on p.pro_codesap = c.pro_codesap

2 – Pour la commande d’UPDATE, on dégage la partie SELECT pour la remplacer par la syntaxe UPDATE

update p set p.pro_actif = c.pro_visible, p.datmaj = getdate()
from PRODUIT p
inner join  CATALOGUE_PRODUIT c
on p.pro_codesap = c.pro_codesap

On remarquera l’importance du raccourci (alias) p pour la table PRODUIT qui est représentée à la fois pour la table du SELECT et la table de l’UPDATE.

Remarque : on ne peut mettre à jour que les champs d’une table.

Propulsé par WordPress.com.