J'utilise le curseur dans une procédure stockée et il n'y a pas d'autre moyen que le curseur.SQL Server: Performances du curseur
J'ai collé mon script ici. Je veux améliorer les performances de ce curseur. Un petit arrière-plan. Im en passant 'nom' et 'action' et le curseur appelle différentes procédures stockées en retour. J'ai passé un autre paramètre (ID) dans toutes ces procédures stockées. S'il vous plaît améliorer la performance.
ALTER PROCEDURE dbo.Driver_sp
AS
TRUNCATE TABLE Driver_tbl
INSERT INTO Driver_tbl (ID,Name,Action,vipbatchid,processseq)
SELECT ID,Name,Action,batchid,ProcessSeq
FROM pcis_tbl
DECLARE @name varchar(20),
@action varchar(20),
@ID bigint
DECLARE cur CURSOR LOCAL FOR
SELECT id,name,action FROM Driver_tbl
ORDER BY processseq
OPEN cur
FETCH NEXT FROM cur INTO @id, @name,@action
WHILE @@FETCH_STATUS = 0
BEGIN
if (@name = 'A' and @action = 'Update')
BEGIN exec A_sp @ID END
else
if (@name = 'B' and @action = 'Update')
BEGIN exec B_sp @ID END
else
if (@name = 'C' and @action = 'Update')
BEGIN exec C_sp @ID END
else
if (@name = 'D' and @action = 'Update')
BEGIN exec D_sp @ID END
fetch next FROM cur INTO @id, @name,@action
END
CLOSE cur
DEALLOCATE cur
Merci!
« * il n'y a pas d'autre moyen que le curseur * » Je rejette votre évaluation. – Blindy
Est-ce Transact SQL? –
Si vous créez ces fonctions définies par l'utilisateur, vous n'aurez pas besoin d'un curseur explicite. – TheCodeKing