Bonjour,

J'ai un problème que je ne comprends pas...

J'ai besoin d'écrire dans une table avec un compteur qui a déjà des enregistrements... jusqu'ici tout va bien !

Pour ce faire je sais que je peux utiliser un curseur mais je voudrais éviter.

Et donc voilà ce que je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
declare @i int
select @i = max(monCompteur) from maTable
set @i = @i + 1
 
select ..., identity(int, @i, 1) monCompteur,... 
into #maTableTmp
from maTableSrc
 
...
Et après je fais un truc du genre... (la structure de la table destination et temporaire est identique)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
insert into maTable select * from #maTableTmp

Et ben... A mon grand étonnement cela ne fonctionne pas...
J'obtiens le message suivant sur la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select ..., identity(int, @i, 1) monCompteur,... 
into #maTableTmp
from maTableSrc
Syntaxe incorrecte vers '@i'.
Evidemment si je met une valeur entière en dur cela fonctionne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select ..., identity(int, 58, 1) monCompteur,... 
into #maTableTmp
from maTableSrc
Comprends pas !

Si vous êtes déjà tomber la dessus aidez moi SVP !!!

Merci