Bonjour à tous,

Je travaille sur du sqlserver 2005.
Je cherche à mettre à jour une table avec X lignes de données.

Je dois avant chaque insert mettre à jour une table compteur qui me donnera mon id (je sais ce n'est pas terrible mais ça a été conçu comme cela)

Je voulais faire un truc dans ce genre

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
DECLARE CMDECURS CURSOR FOR
WITH LISTECOMMANDES (OTPOTSID,OTSNUM,OTPSOCID,OTPSOCCODE,NIVEAU) 
AS (
'DONNEE1','DONNEE2'....
)
SELECT OTPOTSID,OTSNUM, OTPSOCID,OTPSOCCODE  
FROM LISTECOMMANDES 
WHERE NIVEAU <> 1;
OPEN CMDECURS
FETCH NEXT FROM CMDECURS INTO @ORDREID,@ORDRENUM,@ORDRESOCID,@ORDRESOCCODE
 
WHILE @@FETCH_STATUS = 0
BEGIN
 
SET DEADLOCK_PRIORITY LOW
UPDATE CPTTABLE SET CPTTVAL = CPTTVAL + 1  WHERE CPTTNOMT = 'MATABLE';   
SELECT @MAXDUPID=max(CPTTVAL) FROM CPTTABLE WHERE CPTTNOMT = 'MATABLE';   
 
INSERT INTO MATABLE
(CHAMP1,CHAMP2,CHAMP3.....)
VALUE
(@MAXDUPID,@ORDREID,@ORDRENUM...)
FETCH NEXT FROM CMDECURS INTO @ORDREID,@ORDRENUM,@ORDRESOCID,@ORDRESOCCODE
END
CLOSE CMDECURS
DEALLOCATE CMDECURS
END
Ce que je ne sais pas faire c'est comment définir mes valeurs "en dur" (elles ne sont pas issues d'une table) dans le WITH.


Merci d'avance,

Astrid