web-dev-qa-db-fra.com

Comment insérer un NEWID () / GUID / UUID dans l'éditeur de code?

De nombreux éditeurs de code ont un élément de menu intégré ou une fonction de clavier pour obtenir un UUID, par exemple lorsque j'appuie sur CTRL + SHIFT + G dans Delphi, il insère un GUID à la position actuelle dans le code source.

Je sais que je peux utiliser SELECT NEWID() pour générer un UUID, mais je dois aller au résultat de la requête, copier l'UUID généré dans mon presse-papiers (en supprimant tout ce qui s'y trouvait auparavant), puis revenir au code et remplacer la requête qui est une façon horrible de traiter cela.

Existe-t-il une fonction (peut-être à l'aide d'extraits de code IntelliSense?) Pour le faire dans SQL Server Management Studio que je n'ai pas encore trouvée?

Quelques informations sur les raisons pour lesquelles j'ai besoin de cette fonction, j'écris souvent des scripts SQL comme ceci:

INSERT INTO table (table_id, value) 
VALUES ('112C8DD8-346B-426E-B06C-75BBA97DCD63', 'ABC');

Je ne peux pas utiliser simplement appeler NEWID(), car plus tard (dans un autre fichier) je veux faire référence à la ligne spécifique en utilisant:

WHERE table_id = '112C8DD8-346B-426E-B06C-75BBA97DCD63'

Comment puis-je insérer un UUID dans l'éditeur de code?

16
Jens Mühlenhoff

NEWID() elle-même est une fonction. lorsqu'il est appelé, renvoie une valeur GUID.

Vous n'avez pas besoin de le placer dans une fenêtre séparée, puis de copier la valeur de collage à partir de là. Placez simplement cette fonction là où vous voulez la valeur GUID et lorsque la requête est exécutée au moment de l'exécution, la valeur retournée par cette fonction sera utilisée.

Par exemple, dans une instruction Insert

INSERT INTO TableName (Col1 , Col2, Col3)
VALUES (1 , 'Value 1', NEWID())  

Si vous voulez que col3 ait une valeur GUID, vous n'avez pas besoin de copier coller la valeur renvoyée par la fonction NEWID () mais vous utilisez la fonction elle-même. Au moment de l'exécution, une valeur guid sera réajustée et insérée en col3.

De même, si vous mettiez à jour

UPDATE TableName 
  SET Col3 = NEWID()
WHERE <Some Condition>

Encore une fois, vous n'avez pas à copier-coller la valeur renvoyée par la fonction NEWID (), utilisez simplement la fonction elle-même.

Une autre option serait de supposer que vous êtes quelque part dans votre code où vous ne pouvez pas appeler la fonction NEWID(). Vous déclareriez une variable de type UNIQUEIDENTIFIER appeler la fonction stocker sa valeur dans cette variable et ensuite utiliser cette variable dans votre code quelque chose comme ...

DECLARE @GUID_Value UNIQUEIDENTIFIER;
 SET @GUID_Value = NEWID();

-- Now use this variable anywhere in your code.  

Ajout au raccourci clavier

Pour une raison étrange, si vous souhaitez ajouter un raccourci à votre SSMS pour générer des GUID pour vous. Vous auriez besoin de deux choses.

  1. Créez une procédure stockée qui renvoie GUID value.
  2. Ajoutez un raccourci clavier pour appeler cette procédure stockée.

Définition de proc

CREATE PROCEDURE get_Guid
AS 
 SELECT NEWID();

Ajoutez-le aux raccourcis

Depuis votre goto SSMS Outils -> Options -> Environnement -> Clavier

ajoutez le nom de la procédure stockée au raccourci souhaité. Cliquez sur OK. Fermez SSMS et rouvrez-le à nouveau et vous êtes prêt à partir.

enter image description here

Comme le montre l'aperçu ci-dessus, maintenant, si vous appuyez sur CTRL +  il va générer une valeur GUID pour vous dans la même fenêtre de requête.

32
M.Ali

Si l'extension SQL Prompt est installée, vous pouvez créer un nouvel extrait comme ceci ...

Extrait:guid

Description:new GUID

Code:

'$GUID$'

Tapez maintenant guid dans votre éditeur de texte et vous obtiendrez un nouveau GUID entouré de 's.

1
Danny Varod