SQL Server - Créer clé unique auto-incrémentée
-
25-09-2019 - |
Question
Est-il possible dans SQL Server pour créer une table avec une clé primaire incrémente automatiquement lui-même? Je l'ai regardé type « UniqueIdentifier », mais cela ne semble pas faire ce que je pense.
À l'heure actuelle, j'ai quelque chose comme ceci:
CREATE TABLE [dbo].[MyTable](
[Date] [datetime] NOT NULL,
[MyField1] [nchar](50) NOT NULL,
[MyField2] [nvarchar](max) NULL,
[Key] [uniqueidentifier] NOT NULL
) ON [PRIMARY]
En fait, je veux commencer à KEY 1 et juste lui-même incrémente pour chaque enregistrement.
La solution
Vous cherchez la propriété IDENTITY de la .
De la documentation:
Crée une colonne d'identité dans une table. Cette propriété est utilisée avec l'instruction CREATE TABLE et ALTER TABLE Transact-SQL déclarations.
IDENTITY [ (seed , increment) ]
graines
La valeur qui est utilisée pour la toute première ligne chargée dans la table.
incrément
est la valeur ajoutée qui est ajoutée à la valeur d'identité du précédent ligne qui a été chargé.
Vous devez indiquer à la fois la graine et incrémenter ou non plus. Si aucune est spécifié, la valeur par défaut est (1,1).
BTW, tout cela est aussi facile à réaliser à partir de l'interface utilisateur de Mgmt de Sql Server. Il suffit de faire un clic droit sur votre table et la conception de sélection. Sélectionnez ensuite la colonne appropriée et définissez la propriété IDENTITY.
Autres conseils
Définir la clé primaire dans la table create comme ceci:
[Key] [int] IDENTITE (1,1) NOT NULL