uniqueidentifier (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
endpoint di analisi SQL di Azure Synapse Analytics
Platform System (PDW)
in Microsoft Fabric
Warehouse 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
:
- PolyBase
- Strumento di caricamento dwloader per Parallel Data Warehouse
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)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional Replication