Bonjour
Je cherche mettre à jour plusieurs variables pour mettre à jour plusieurs colonne d'une table volumineuse.
Je fais ça ligne à ligne pour une grande partie de ma table et le traitement est beaucoup trop long (~45min).

Vous remarquerez que la condition WHERE ci-dessous est toujours la même.

Il doit exister un moyen pour utiliser le "SET" pour toutes les variables à mettre à jour sur une même ligne. Ce qui éviterait de parcourir toutes les lignes de ma table pour chaque variable et donc de gagner en temps de traitement.

Quelle syntaxe permettrait ça ?
Que me suggérez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[
 
SET @variable1 = ( SELECT     dbo.ECRITU.variable1
FROM         dbo.COMPTES RIGHT OUTER JOIN
                dbo.CPTECR ON dbo.COMPTES.CPTID = dbo.CPTECR.CPTID LEFT OUTER JOIN
                dbo.ECRITU ON dbo.CPTECR.ECRID = dbo.ECRITU.ECRID
WHERE     1 = 1
AND (dbo.CPTECR.TYPCPT = 'ANAA')
AND  @ecrid = ECRITU.ECRID ) 
 
SET @variable2 = (SELECT     dbo.COMPTES.DESCOM
FROM         dbo.COMPTES RIGHT OUTER JOIN
                dbo.CPTECR ON dbo.COMPTES.CPTID = dbo.CPTECR.CPTID LEFT OUTER JOIN
                dbo.ECRITU ON dbo.CPTECR.ECRID = dbo.ECRITU.ECRID
WHERE     1 = 1
AND (dbo.CPTECR.TYPCPT = 'ANAA')
AND  @ecrid = ECRITU.ECRID )
 
SET @variable3 = (SELECT     dbo.COMPTES.DESCOM
FROM         dbo.COMPTES RIGHT OUTER JOIN
                dbo.CPTECR ON dbo.COMPTES.CPTID = dbo.CPTECR.CPTID LEFT OUTER JOIN
                dbo.ECRITU ON dbo.CPTECR.ECRID = dbo.ECRITU.ECRID
WHERE     1 = 1
AND (dbo.CPTECR.TYPCPT = 'ANAA')
AND  @ecrid = ECRITU.ECRID )
 
]
Merci