Fondamentalement, je veux utiliser uniqueidentifier de la même manière que l'identité. Je ne veux pas y insérer des valeurs, Il devrait simplement insérer des valeurs automatiquement, une valeur différente pour chaque ligne. Je ne suis pas en mesure de définir autoincrement sur les colonnes de type uniqueidentifier (la propriété 'autoincrement' est définie sur false et n'est pas modifiable).Autoincrement uniqueidentifier
Répondre
Ou encore mieux: utilisez le newsequentialid()
par défaut pour votre colonne UNIQUEIDENITIFER. Cela vous donnera une série séquentielle de GUID.
CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
Le problème est: newsequentialid est uniquement disponible par défaut de la colonne - vous ne pouvez pas l'appeler en fonction ou quoi que ce soit. Mais cela semble correspondre à vos exigences. Il semble qu'il y ait un bogue reconnu dans SQL Server Management Studio qui empêche de spécifier newsequentialid()
comme valeur par défaut pour une colonne dans le concepteur de table interactif.
Voir: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6
Solution: créez votre table sans spécifier par défaut, puis tapez dans cette instruction T-SQL dans une fenêtre de requête normale et exécutez:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
Cela devrait faire l' tour!
Utilisez NewID() comme valeur par défaut. Au moins, c'est ce que vous feriez pour SQL Server.
ceux qui ne sont pas exactement près de séquentiel/auto-incrementin g, bien que ..... –
J'ai essayé cela mais il semble toujours générer le même identifiant (celui-ci: "00000000-0000-0000-0000-000000000000"). Donc, lors de l'insertion de la deuxième ligne, je reçois l'erreur (liant pour insérer la clé primaire qui est déjà utilisée) – drasto
vous devez définir newId() directement dans la définition de la table dans votre base de données! – MUG4N
Je suppose que vous voulez parler SQLServer et non C# ...
indique si la colonne clé primaire et ROWGUID
RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png
assurez-vous juste que ** NON ** utilisez pour faire l'index clusterisé sur la table !! –
Pourquoi pas? Je l'utilise sur un projet et fonctionne bien, tout semble normal, vérifié le plan d'exécution, l'ordre des tables, tout est normal ... – BrunoLM
GUID comme index clusterisé sont horriblement mauvais: consultez http: //www.sqlskills. com/BLOGS/KIMBERLY/post/GUID-comme-PRIMARY-KEYs-andou-the-clustering-key.aspx - ils conduisent à une fragmentation massive des pages et des index –
Je pense
CREATE TABLE dbo.YourTable
(
SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
)
est simplier
- 1. PHP: uniqueidentifier
- 2. uniqueidentifier avec l'index
- 3. erreur de syntaxe Autoincrement
- 4. mysql export perd AutoIncrement
- 5. C# guid et SQL uniqueidentifier
- 6. uniqueidentifier Equivalent DataType In C#
- 7. De varchar (36) à UNIQUEIDENTIFIER
- 8. Erreur dans près de 'Autoincrement'
- 9. MySQL Set AutoIncrement "Ad Hoc"
- 10. Le générateur hibernate n'insèrera pas avec uniqueidentifier
- 11. Garbled Texte dans uniqueidentifier dans SQLite
- 12. comment concaténer uniqueidentifier dans une requête dynamique
- 13. Convertir varchar à uniqueIdentifier dans SQL Server
- 14. mysql: l'insertion de données et autoincrement
- 15. champ id sans option autoincrement migration
- 16. Restriction de l'autorisation AutoIncrement utilisateur MySQL
- 17. AutoIncrement dans SQLite avec Subsonic 3
- 18. autoincrement dans l'accès sql ne fonctionne pas
- 19. ConstraintException sur DataTable.Rows.Add avec AutoIncrement Colonne
- 20. SQL Server 2008 Conversion VARCHAR (50) à Uniqueidentifier
- 21. SQL Server 2005 UniqueIdentifier et C# Type de données
- 22. mise UniqueIdentifier de Guid dans LINQ, nulle exception de référence
- 23. Utilisation du type de colonne SQL uniqueidentifier avec Entity Framework
- 24. pourquoi GUID uniqueidentifier affiche une valeur légèrement différente
- 25. Conflit de type d'opérande: int est incompatible avec uniqueidentifier
- 26. Rails Rake MySql Autoincrement Problème w db: fixtures: load
- 27. Régler la valeur de départ pour la colonne avec autoincrement
- 28. champ autoincrement « violation de clé » dans ClientDataSet [Delphi]
- 29. La colonne MySQL autoincrement saute de 10- pourquoi?
- 30. Comment générer un ID unique sans utiliser AUTOINCREMENT
Ce n'est pas un problème du tout pour moi. Votre réponse semble être ce que je cherchais. Je vais l'essayer :) – drasto
J'ai "Erreur de validation de la valeur par défaut pour la colonne XY". Pourriez-vous s'il vous plaît contrôler votre code (une faute de frappe?)? – drasto
@drasto: J'ai exécuté ce code sur SQL Server 2008 R2 avant de le publier - cela fonctionne. Quelle * version * de SQL Server avez-vous ??? J'ai enlevé des parenthèses supplémentaires autour du newsequentialid() - peut-être que c'est un problème? Est-ce que fonctionne sur 2008R2 pour sûr –