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
Vous devez vous connecter pour publier un commentaire.
Bien sûr, fondamentalement, tous les administrateurs de base de données va vous tuer si vous essayez de se faufiler un curseur dans le code de production.
parce que les curseurs de la performance sont des tueurs et doit être remplacé avec un ensemble de base de code. Je comprends que ce n'est pas si vrai dans Oracle, mais il est dans SQL Server.
OriginalL'auteur Tetraneutron
Cela semble être tout simplement une copie d'un tableau de droite?
Bien:
Je pense que vous pourriez aussi à quelque chose comme
mais dans le second cas, vous devez créer la table avant de, la première place est aussi créer la TABLE
Cheers
Johannes
OriginalL'auteur john84
Version sans le curseur, mais avec le temp colonne:
OriginalL'auteur van
Si j'ai bien compris ce que vous avez demandé (je ne suis pas compétent avec PL/SQL), ressemble à une jolie tâche facile:
Mais je suis juste deviner votre intention, l'espoir n'ai pas mal compris.
P. S.: comme someelse déjà souligné, vous devez avoir déjà créé tableau abc
Vous avez raison: je n'ai pas assez attention à ce "retour des id dans asdf"... Merci
OriginalL'auteur M.Turrini
Espère que c'est ce que vous cherchez:
deviendrait
Le sql server version du le retour de la clause dans Oracle est le SORTIE clause.
Veuillez visiter cette page msdn pour des informations complètes
OriginalL'auteur luis