Je souhaite faire une insert dans uen table en fonction d'un jeu de données retournée par un select.
en gros, pour chaques lignes retournées, faire un insert de une ou plusieurs de ces valeurs retournees.
Merci d'avance![]()
Je souhaite faire une insert dans uen table en fonction d'un jeu de données retournée par un select.
en gros, pour chaques lignes retournées, faire un insert de une ou plusieurs de ces valeurs retournees.
Merci d'avance![]()
La meilleure solution est d'utiliser la syntaxe INSERT ... SELECT....
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO MaTable1 (ch1,ch2,ch3) SELECT ch1,ch2,ch3 FROM MaTable2 WHERE ch1=10
En tant que programmeur j'aurais pensé a un FOREACH ou assimilé ... mais pourquoi pas
Je vais tester ce genre de chose.
Afin de boucler dans SQL Server, il faut utiliser des curseurs. Le problème posé par l'utilisation de cette technique est que le jeu résultat de la requête est monté intégralment dans le cache du serveur SQL. Ca peut convenir pour des jeu de résultats faible quantité. Si le jeu est important le cache utilisé peut donc poser des problèmes de performances lors de l'exécution des requêtes SQL. Ceci engendre une perte de performancE;
quelle est pour toi la limite de cette utilisation (et s itu en as un exemple ca m'arrangerais)
En fait je viens de realiser un truc, c'est que ces valeurs de retours doivent etre transmises a une procedure stockée. donc Exit la solution du insert [...] SElect.
Pourrais-tu préciser ce que tu souhaites réaliser dans ta procédure stockée afin de t'orienter vers la meilleure solution ?
Partager