Comment incrémenter la valeur des colonnes entières de 1 dans SQL

Mes questions est

Comment incrémenter la valeur d’une colonne de 1.

Par exemple, supposons qu’un ID colonne a des valeurs 1,2,3,4, ..

Maintenant, lorsque je mets à jour cette table, la colonne ID doit être incrémentée de 1,

Maintenant, ID deviendra 2,3,4,5, ..

Ajouter un à chaque valeur dans le tableau …

 UPDATE myTable SET ID = ID + 1 

Pour créer une nouvelle valeur, une de plus que la précédente (en général), utilisez une colonne avec IDENTITY

Si vous souhaitez avoir un numéro unique pour chaque ligne générée automatiquement, il s’agit de IDENTITY selon la réponse de Neil.

Si chaque fois que vous mettez à jour la table, vous voulez augmenter les valeurs (c.-à-d. Que ce ne sont pas des clés):

 Update MyTable Set IDColumn = IDColumn + 1 Where  

Essaye ça :

 Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1 

Dans Oracle, le code est un peu plus compliqué.

Vous devrez créer un champ auto-incrémenté avec l’object séquence (cet object génère une séquence numérique).

Utilisez la syntaxe suivante de CREATE SEQUENCE:

 CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10 

Le code ci-dessus crée un object séquence appelé seq_person, qui commence par 1 et s’incrémentera de 1. Il mettra également en cache jusqu’à 10 valeurs pour les performances. L’option de cache spécifie combien de valeurs de séquence seront stockées en mémoire pour un access plus rapide.

Pour insérer un nouvel enregistrement dans la table “Persons”, nous devrons utiliser la fonction nextval (cette fonction récupère la valeur suivante dans la séquence seq_person):

 INSERT INTO Persons (ID,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen') 

L’instruction SQL ci-dessus insère un nouvel enregistrement dans la table “Personnes”. Le numéro suivant de la séquence seq_person sera atsortingbué à la colonne “ID”. La colonne “FirstName” serait définie sur “Lars” et la colonne “LastName” serait définie sur “Monsen”.

Vous pouvez utiliser IDENTITY qui le fera pour vous.

 CREATE TABLE [dbo].[MyTable]( [MyTableID] [int] IDENTITY(1,1) NOT NULL, -- Other columns ) 

Lorsque vous insérez votre premier enregistrement, vous obtenez un Id de 1.

Vous pouvez essayer ce qui suit:

 DECLARE @i INT SET @i = @@ROWCOUNT + 1 INSERT INTO YourTable (Identity Column) VALUES (@i + 1)