Que tal...
Mira he utilizado algo parecido a lo tuyo... puede que sea de dos formas...
uno... Que tengas un campo autoincremental...
dos... que tengas un campo tipo numerico...
En el caso de que sea un campo numerico, creo que yo le pongo asi.. (digo creo porque no lo tengo a la mano)
donde tengo una tabla de nombre X, la cual tiene un campo que se llama llave de tipo int.
Declare @Incremento int
Set @Incremento = (Select MAX(llave)+1 from X)
y luego lo asignas a tu insert....
Si gustas en ese select le pones la instruccion isnull, por aquello de que no tengas registros al inicio,...
jeje, espero haber sabido explicarme...
Saludos...
Daniel_27