Bonjour, j'aimerai savoir comment attribuer la valeur max à un champ, en ne faisant qu'un seul update (si c'est possible)
Exemple :
create table #temp
(
Cptr int
)
insert into #temp
(
Cptr
)
values
(
0
)
insert into #temp
(
Cptr
)
values
(
0
)
insert into #temp
(
Cptr
)
values
(
1
)
select
*
from
#temp
update
tmp
set
tmp.Cptr = (select max(Cptr) + 1 from #temp )
from
#temp tmp
where
Cptr = 0
select
*
from
#temp
drop table #temp
Et j'obtiens :
(1 ligne(s) affectée(s))
(1 ligne(s) affectée(s))
(1 ligne(s) affectée(s))
Cptr
-----------
0
0
1
(3 ligne(s) affectée(s))
(2 ligne(s) affectée(s))
Cptr
-----------
2
2
1
(3 ligne(s) affectée(s))
or je voudrais obtenir à la fin :
Cptr
--------------
2
3
1
Je pourrai le faire avec une boucle ou autre, mais comment le faire en une seule instruction ?
Merci.
Partager