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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
ALTER PROCEDURE [dbo].[sp_import_valeur]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Déclarations des variables
DECLARE
@Compteur INT = 1,
@EvenementId INT,
@MachineId INT,
@MessageId INT,
@EvenementNbValeurs INT,
@Valeur1 REAL, @Valeur2 REAL, @Valeur3 REAL,
@Valeur4 REAL, @Valeur5 REAL, @Valeur6 REAL,
@Valeur7 REAL, @Valeur8 REAL, @Valeur9 REAL,
@Valeur10 REAL, @Valeur11 REAL, @Valeur12 REAL,
@Valeur13 REAL, @Valeur14 REAL, @Valeur15 REAL,
@Valeur16 REAL, @Valeur17 REAL, @Valeur18 REAL,
@Valeur19 REAL, @Valeur20 REAL, @Valeur21 REAL,
@Valeur22 REAL, @Valeur23 REAL, @Valeur24 REAL,
@Valeur25 REAL, @Valeur26 REAL, @Valeur27 REAL,
@Valeur28 REAL, @Valeur29 REAL, @Valeur30 REAL;
DECLARE curseur CURSOR FOR(
SELECT i.EvenementId, i.MachineId, i.MessageId, i.EvenementNbValeurs,
i.Valeur1, i.Valeur2, i.Valeur3, i.Valeur4, i.Valeur5, i.Valeur6,
i.Valeur7, i.Valeur8, i.Valeur9, i.Valeur10, i.Valeur11, i.Valeur12,
i.Valeur13, i.Valeur14, i.Valeur15, i.Valeur16, i.Valeur17, i.Valeur18,
i.Valeur19, i.Valeur20, i.Valeur21, i.Valeur22, i.Valeur23, i.Valeur24,
i.Valeur25, i.Valeur26, i.Valeur27, i.Valeur28, i.Valeur29, i.Valeur30
FROM Import i
WHERE i.EvenementNbValeurs > 0
);
OPEN curseur;
FETCH curseur INTO @EvenementId, @MachineId, @MessageId, @EvenementNbValeurs,
@Valeur1, @Valeur2, @Valeur3, @Valeur4, @Valeur5, @Valeur6,
@Valeur7, @Valeur8, @Valeur9, @Valeur10, @Valeur11, @Valeur12,
@Valeur13, @Valeur14, @Valeur15, @Valeur16, @Valeur17, @Valeur18,
@Valeur19, @Valeur20, @Valeur21, @Valeur22, @Valeur23, @Valeur24,
@Valeur25, @Valeur26, @Valeur27, @Valeur28, @Valeur29, @Valeur30;
WHILE @@FETCH_STATUS = 0
BEGIN
WHILE @Compteur <= @EvenementNbValeurs
BEGIN
INSERT INTO Valeur(EvenementId, MachineId, MessageId, DetailId, Valeur)
VALUES (@EvenementId, @MachineId, @MessageId, @Compteur, VariableDYNAMIQUE (@('Valeur'+@Compteur)));
SET @Compteur = @Compteur + 1;
END
FETCH curseur INTO @EvenementId, @MachineId, @MessageId, @EvenementNbValeurs,
@Valeur1, @Valeur2, @Valeur3, @Valeur4, @Valeur5, @Valeur6,
@Valeur7, @Valeur8, @Valeur9, @Valeur10, @Valeur11, @Valeur12,
@Valeur13, @Valeur14, @Valeur15, @Valeur16, @Valeur17, @Valeur18,
@Valeur19, @Valeur20, @Valeur21, @Valeur22, @Valeur23, @Valeur24,
@Valeur25, @Valeur26, @Valeur27, @Valeur28, @Valeur29, @Valeur30;
END
CLOSE curseur;
DEALLOCATE curseur;
END |
Partager