uniqueidentifier (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

GUID a 16 byte.

Osservazioni:

È possibile inizializzare una colonna o variabile locale di tipo uniqueidentifier su un valore specifico nei modi seguenti:

  • Usando le funzioni NEWID o NEWSEQUENTIALID.
  • Tramite la conversione da una costante stringa nel formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in cui ogni x rappresenta una cifra esadecimale compresa nell'intervallo 0-9 oppure a-f. Ad esempio, 6F9619FF-8B86-D011-B42D-00C04FC964FF è un valore uniqueidentifier valido.

Con i valori uniqueidentifier è possibile usare gli operatori di confronto. Quando si confrontano gli schemi di bit dei due valori, tuttavia, l'ordinamento non viene implementato. Le uniche operazioni che è possibile eseguire su un valore uniqueidentifier sono i confronti (=, <>, <, >, <=, >=) e il controllo della presenza di valori NULL (IS NULL e IS NOT NULL). Non è possibile utilizzare altri operatori aritmetici. Con il tipo di dati uniqueidentifier è possibile usare tutti i vincoli e le proprietà delle colonne, ad eccezione di IDENTITY.

Le colonne uniqueidentifier vengono usate nella replica transazionale e di tipo merge con sottoscrizioni aggiornabili, per garantire che le righe siano identificate in modo univoco in più copie della tabella.

Conversione del tipo di dati uniqueidentifier

Per la conversione da un'espressione di caratteri, il tipo uniqueidentifier è considerato un tipo di dati carattere ed è pertanto soggetto alle regole di troncamento per la conversione in un tipo di dati carattere. Vale a dire che, se un'espressione di caratteri viene convertita in un tipo di dati carattere di dimensioni diverse, i valori troppo lunghi per il nuovo tipo di dati vengono troncati. Vedere la sezione relativa agli esempi.

Limitazioni e restrizioni

I seguenti strumenti e funzionalità non supportano il tipo di dati uniqueidentifier:

Esempi

Nell'esempio seguente un valore uniqueidentifier viene convertito in un tipo di dati char.

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

Nell'esempio seguente viene illustrato il troncamento dei dati quando il valore è troppo lungo per il tipo di dati in cui avviene la conversione. Poiché la lunghezza del tipo uniqueidentifier è limitata a 36 caratteri, i caratteri eccedenti vengono troncati.

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

Questo è il set di risultati.

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

Vedi anche

ALTER TABLE (Transact-SQL)
CAST e CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Tipi di dati (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
NEW edizione Standard QUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional Replication