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 ?
Merci
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 ) ]
Partager