Envisager la création d'un unique, sequential ID.
CREATE TABLE STUDENT
(
-- Start at 1 and increment by 1
ID INT IDENTITY(1,1) PRIMARY KEY,
FirstName nvarchar(100),
LastName nvarchar(100)
)
Une autre option serait de créer un uniqueidentifier (GUID)
CREATE TABLE STUDENT
(
ID uniqueidentifier NOT NULL DEFAULT NEWSEQUENTIALID() ROWGUIDCOL PRIMARY KEY,
FirstName nvarchar(100),
LastName nvarchar(100)
)
Personnellement, j'aime ID séquentiel. Il est plus facile de déboguer une clé si c'est un entier simple plutôt qu'un guide lourd. Pointer manuellement dans SQL pour tester/déboguer est très trépidant lorsque vous devez poinçonner un GUID et obtenir le formatage correct. En outre, un ID séquentiel vous donne une autre façon de regarder l'ordre des enregistrements. Mais cela peut dépendre de vos besoins spécifiques d'application. En outre, un ID séquentiel est plus universel qu'un GUID. GUID est un peu un Microsoft-isme, et tandis qu'ils peuvent être stockés dans d'autres DB comme Oracle, l'ordre des octets est unique à SQL Server, et ne se connecte pas facilement.
En outre, juste une intuition, mais les ID entiers séquentiels peuvent avoir de meilleures performances avec l'indexation.
déjà répondu, ici http://stackoverflow.com/questions/16447254/randomly-generating-unique-number-between-1-999-for-primary-key-in-table/16447477#16447477 –
Est-ce que ça doit vraiment être un nombre aléatoire? Pourquoi ne pas utiliser un identifiant séquentiel? Garanti pour être unique, et c'est quelque chose de intégré. Une autre option est GUID, mais alors, je ne suis pas un nombre entier. Je suppose qu'il doit être un entier basé sur votre définition de table. –
@StealthRabbi je vous remercie pour ansewring. peux-tu me donner un petit code par exemple? – iCoder