je fais une selection sur une table et pour chaque resultat je traite un update sur une autre table de la base.
foreach (id_role in (select role.id_role from formulaire, proposer_role, role, etre_attribue where formulaire.id_form=proposer_role.id_form and proposer_role.id_role=role.id_role and role.id_role=etre_attribue.id_role and [mailto:etre_attribue.id_pers=@id_pers etre_attribue.id_pers=@id_pers] and [mailto:formulaire.id_form=@id_form formulaire.id_form=@id_form]))
begin
UPDATE etre_attribue
SET[mailto:date_sup=@date_dup date_sup=@date_dup]
end
merci de votre aide...
Il n'y a pas de foreach en T-SQL sur SQL Server et pas non plus de boucles FOR.
Pour faire ce que tu explique plus haut, soit on utilise un curseur, mais qui en général est une solution particulièrement lente...
Ou on modifie la requête :
merci de ton attention mais la subquery retourne plusieurs valeurs. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
une autre petite question, je voudrais inserer des données dans une table provenant d'1 select qui retourne pulsieurs tuples. je bloque encore :
INSERT INTO table_virtuel (id_role) VALUES
(SELECT role.id_role FROM personne, etre_attribue, role,proposer_role, formulaire WHERE personne.id_pers=etre_attribue.id_pers AND etre_attribue.id_role=...)
vous sauriez m'aider ?