Boucler sur tous les enregistrements d’une table

Voici une façon simple et élégante (mais pas très rapide!) de boucler en SQL sur tous les enregistrements d’une table qui comporte une clé primaire unique:

-- changer type, id et table selon le type et le nom de la clé primaire et la table à manipuler
declare @id type
select @id = min(id) from table
while @id is not null
begin
-- modifier cette ligne selon l'opération à faire sur chaque enregistrement
select * from table where id = @id
select @id = min(id) from table where id > @id
end

Pour boucler sur tous les enregistrements d’une table qui ne comporte pas de clé primaire, la méthode est plus complexe et moins élégante; elle implique l’utilisation d’une table temporaire. Voirhttp://support.microsoft.com/kb/111401 pour plus de détails.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *