Mes questions est
comment incrémenter la valeur d'une colonne de 1.
Par exemple, supposons qu'une colonne ID
ait les valeurs 1,2,3,4, ..
Maintenant, quand je mets à jour cette table, la colonne ID
doit incrémenter de 1,
Maintenant, ID
deviendra 2,3,4,5, ..
Pour en ajouter un à chaque valeur de la table ...
UPDATE myTable
SET ID = ID + 1
Pour créer une nouvelle valeur, une plus que la plus haute précédente (généralement), utilisez une colonne avec IDENTITY
Si vous voulez avoir un numéro unique pour chaque ligne générée automatiquement, il s'agit de IDENTITY conformément à la réponse de Neil.
Si chaque fois que vous mettez à jour le tableau, vous voulez augmenter les valeurs (c’est-à-dire qu’elles ne sont pas des clés):
Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>
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'objet séquence (cet objet génère une séquence numérique).
Utilisez la syntaxe CREATE SEQUENCE suivante:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Le code ci-dessus crée un objet séquence appelé seq_person, qui commence par 1 et sera incrémenté de 1. Il mettra également en cache jusqu'à 10 valeurs pour améliorer les performances. L'option cache spécifie le nombre de valeurs de séquence qui seront stockées en mémoire pour un accès plus rapide.
Pour insérer un nouvel enregistrement dans la table "Personnes", nous devrons utiliser la fonction nextval (cette fonction extrait la valeur suivante de la séquence seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
L'instruction SQL ci-dessus insérerait un nouvel enregistrement dans la table "Personnes". Le numéro suivant de la séquence seq_person sera attribué à la colonne "ID". La colonne "Prénom" serait définie sur "Lars" et la colonne "Nom" 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 une Id
de 1.
Vous pouvez essayer ce qui suit:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)