je [identité UnicLine int (1,1)] Filed qui augmentent sa valeurComment lire augmentation automatique lors du dépôt avant d'insérer la base de données
Comment puis-je lire sa valeur befor insérer nouvel enregistrement à la base de données?
je [identité UnicLine int (1,1)] Filed qui augmentent sa valeurComment lire augmentation automatique lors du dépôt avant d'insérer la base de données
Comment puis-je lire sa valeur befor insérer nouvel enregistrement à la base de données?
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_
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.
Est-ce que @SCOPE_IDENTITY ou SCOPE_IDENTITY()? –
Je pense que ce serait @@ IDENTITY ou scope_identity() –