Sdílet prostřednictvím


uniqueidentifier (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Je identifikátor GUID 16 bajtů.

Remarks

Sloupec nebo místní proměnná datového typu uniqueidentifier lze inicializovat na hodnotu následujícími způsoby:

  • Pomocí funkcí NEWID nebo NEWSEQUENTIALID .
  • Převodem z řetězcové konstanty ve formuláři xxxxxxxx-xxxx-xxxx-xxxx xxxx-xxxxxx, ve kterém je každá x šestnáctková číslice v rozsahu 0–9 nebo a-f. Například 6F9619FF-8B86-D011-B42D-00C04FC964FF je platná hodnota uniqueidentifier .

Relační operátory lze použít s hodnotami uniqueidentifier . Řazení ale není implementováno porovnáním bitových vzorů dvou hodnot. Jedinými operacemi, které lze provést s hodnotou uniqueidentifier, jsou porovnání (=, <>, , <, ><=, >=) a kontrola hodnoty NULL (IS NULL a IS NOT NULL). Nelze použít žádné další aritmetické operátory. Všechna omezení a vlastnosti sloupce s výjimkou IDENTITY lze použít u datového typu uniqueidentifier .

Sloučení replikace a transakční replikace s aktualizací předplatných pomocí sloupců uniqueidentifier zaručuje jedinečnou identifikaci řádků napříč několika kopiemi tabulky.

Převod dat uniqueidentifier

Typ uniqueidentifier je považován za typ znaku pro účely převodu z výrazu znaku, a proto podléhá pravidlům zkrácení pro převod na typ znaku. To znamená, že když jsou výrazy znaků převedeny na datový typ znaku jiné velikosti, hodnoty, které jsou pro nový datový typ příliš dlouhé, jsou zkráceny. Viz část Příklady.

Limity a omezení

Tyto nástroje a funkce nepodporují uniqueidentifier datový typ:

Examples

Následující příklad převede uniqueidentifier hodnotu na char datový typ.

DECLARE @myid uniqueidentifier = NEWID();  
SELECT CONVERT(CHAR(255), @myid) AS 'char';  

Následující příklad ukazuje zkrácení dat, pokud je hodnota příliš dlouhá pro datový typ převeden na. Vzhledem k tomu, že typ uniqueidentifieru je omezen na 36 znaků, znaky, které přesahují délku, jsou zkráceny.

DECLARE @ID NVARCHAR(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';  
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;  

Tady je soubor výsledků.

String                                       TruncatedValue  
-------------------------------------------- ------------------------------------  
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0  
  
(1 row(s) affected)  

Viz také

ZMĚNIT TABULKU (Transact-SQL)
CAST a CONVERT (Transact-SQL)
VYTVOŘIT TABULKU (Transact-SQL)
Datové typy (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Aktualizovatelná předplatná pro transakční replikaci