2009-05-28 5 views

Répondre

4

Vous ne devriez jamais besoin de cela, ce que vous pouvez est à la sortie de l'ID nouvellement créé comme par exemple:

INSERT INTO [table] 
SELECT field1, field2; 
SELECT SCOPE_IDENTITY(); 

et obtenir cet ID dans votre ADO/ORM.

Mais pour répondre à votre question, vous pouvez le faire:

SELECT top 1 [UnicLine] + 1 as newIDValue FROM [table] ORDER BY [UnicLine] DESC; 

simple ou

SELECT MAX([UnicLine]) + 1 as newIDValue FROM [table] 

pas dans le cadre de la question, mais read about

SCOPE_IDENTITY() vs @@IDENTITY vs IDENT_CURRENT('tablename') 

savoir les différences et ch oose le droit un à use_

+0

Est-ce que @SCOPE_IDENTITY ou SCOPE_IDENTITY()? –

+0

Je pense que ce serait @@ IDENTITY ou scope_identity() –

1

Si vous voulez juste voir la valeur maximale qui est actuellement dans le tableau, vous pouvez le faire:

select max(UnicLine) from mytable 

Cependant, cela vous dira pas nécessairement ce que la valeur suivante sera dans le domaine de l'identité. S'il y avait des insertions qui ont été annulées, l'identité aurait été incrémentée pour chaque, de sorte que votre insertion suivante pourrait avoir une valeur supérieure au maximum + 1 actuel. Je suis d'accord avec balexandre, il n'y a généralement pas de raison pour cela tu aurais besoin de ça.

Questions connexes