Comment générer un nouveau Guid dans une procédure stockée?
J'ai actuellement une procédure stockée dans lequel je veux insérer de nouvelles lignes dans une table.
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
Donc la clé primaire 'id' est un Guid. Je sais comment créer un nouveau Guid dans le code C# mais à l'intérieur de la procédure stockée je ne suis pas sûr comment générer le nouveau Guid pour les valeurs de clé primaire.
Vous devez vous connecter pour publier un commentaire.
Avec SQL Server, vous pouvez utiliser la fonction NEWID. Vous êtes à l'aide de C# donc je suppose que vous êtes à l'aide de SQL Server. Je suis sûr que d'autres système de base de données ont des fonctions similaires.
Si vous utilisez Oracle ensuite, vous pouvez utiliser le
SYS_GUID()
fonction. Découvrez la réponse à cette question: Générer un GUID dans OracleEssayez ceci:
Vous ne vous posez pas de questions sur ce à votre question, mais je pense qu'il est intéressant de souligner que l'utilisation d'un GUID pour une clé primaire n'est pas toujours une bonne idée. Alors c'est simple, il peut affecter les performances lorsqu'un GUID est utilisée dans un index. Avez-vous songé à l'aide d'un Colonne d'identité qui est une valeur entière à la place?
Voici quelques articles qui pourraient être utiles à lire.
comme Clés Primaires (SQL Server
Le Magazine)
Guid (Jeff Atwood)
Dans MySQL il est UUID().
donc, la requête serait:
si vous souhaitez réutiliser l'uuid vous pouvez le faire comme ceci:
Dans le format de la question (spot le pédant!)