Bonjour à tous,
je me frotte à un problème que je ne parviens pas à résoudre seul. Je fais donc appel à vous.
Je dispose d'une procédure stockée de suppression d'objets dans plusieurs tables liées.
Cette procédure stockée prend un paramètre en entrée.
Je veux procéder à une suppression de masse en utilisant cette procédure stockée mais si possible sans curseur car les performances sont vraiment mauvaises (je suis sur plusieurs centaines de milliers d'itérations).
Voilà comment je procède par curseur :
Je souhaite si possible conserver l'appel à la procédure stockée utilisée dans le curseur car c'est elle qui s'occupe de la suppression et elle a été validée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DECLARE @ID uniqueidentifier DECLARE BadCursor CURSOR FOR SELECT t.[ID] FROM [dbo].[MATABLE] t WHERE t.[CONDITION] = 1 FETCH NEXT FROM BadCursor INTO @ID WHILE (@@fetch_status <> -1) BEGIN EXEC MaProcedureStockee @ID END FETCH NEXT FROM BadCursor INTO @ID END CLOSE BadCursor DEALLOCATE BadCursor
Existe-t-il un moyen de procéder autrement ? Si oui, pourriez-vous me guider ?
D'avance merci et bonne journée
Partager