sql >> Database teknologi >  >> Database Tools >> SSMS

Hvordan indsætter man en NEWID() / GUID / UUID i kodeeditoren?

NEWID() i sig selv er en funktion. når det kaldes returnerer en GUID-værdi.

Du behøver ikke at sætte det i et separat vindue og derefter kopiere indsæt værdi derfra. Du skal blot placere den funktion der, hvor du vil have GUID-værdien, og når forespørgslen udføres på kørselstidspunktet, vil værdien, der returneres af denne funktion, blive brugt.

For eksempel i en Insert-sætning

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

Hvis du ønsker, at col3 skal have en GUID-værdi, behøver du ikke kopiere og indsætte værdien, der returneres fra NEWID()-funktionen, men du bruger selve funktionen. Ved kørsel vil en vejledende værdi blive genindstillet og indsat i col3.

På samme måde hvis du opdaterede

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

Igen behøver du ikke kopiere og indsætte værdien, der returneres fra NEWID()-funktionen, bare brug selve funktionen.

En anden mulighed ville være, at du er et sted inde i din kode, hvor du ikke kan kalde NEWID() funktion. Du ville erklære en variabel af typen UNIQUEIDENTIFIER kalde funktionen gemme dens værdi til den variabel og derefter bruge den variabel inde i din kode noget som ...

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

-- Now use this variable anywhere in your code.  

Tilføjelse til tastaturgenvej

Af en eller anden mærkelig grund, hvis du vil tilføje en genvej til din SSMS for at generere GUID'er til dig. Du skal have to ting.

  1. Opret en lagret procedure, som returnerer GUID-værdi .
  2. Tilføj en tastgenvej for at kalde den lagrede procedure.

Proc Definition

CREATE PROCEDURE get_Guid
AS 
 SELECT NEWID();

Føj det til genveje

Fra din SSMS gå til Værktøjer --> Indstillinger --> Miljø --> Tastatur

tilføje den lagrede procedures navn til den genvej, du vil. Klik på OK. Luk SSMS og åbn den igen, og du er godt i gang.

Som vist i ovenstående snipshot, hvis du nu trykker på CTRL + 0 det vil generere en GUID-værdi for dig i det samme forespørgselsvindue.



  1. Hvordan kan jeg forespørge mellem to datoer med 'dato'-feltet er en streng?

  2. phpMyAdmin - Vis BLOB-felter som tekst?

  3. Oprettelse af registrerede servere via Powershell i SSMS

  4. Hvad er den korrekte if-klausul-syntaks for en MySQL-lagret funktion?