Transact-SQL: insert into xyz ( select * from abc )

je veux réaliser une construction dans MS SQL qui devrait ressembler à ceci dans les Oracles PL/SQL:

declare
asdf number;
begin
for r in (select * from  xyz) loop
   insert into abc (column1, column2, column3) 
   values (r.asdf, r.vcxvc, r.dffgdfg) returning id into asdf;

    update xyz set column10 = asdf where ID = r.ID;
end loop;
end;

Une idée de comment réaliser cela pourrait être utile.

Merci d'avance

Davis, veuillez reconsidérer l'aide d'un curseur, vous ne devriez pas, si possible, utiliser un curseur dans SQl server, car elle est très lente par rapport à la base d'ensemble des solutions. Basées sur des solutions ont été fournis et que vous devriez considérer. Depuis que vous êtes à la conversion à partir d'Oracle, vous devez cesser de penser en termes de boucles et de commencer à penser en terme de jeux de données lors du travail avec SQL Server.

OriginalL'auteur David | 2009-05-26