Utilizzo di tipi di dati per valori di grandi dimensioni
In Microsoft SQL Server 2005 è disponibile l'indicatore max. Questo indicatore estende le capacità di archiviazione dei tipi di dati varchar, nvarchar e varbinary. varchar(max), nvarchar(max) e varbinary(max) vengono tutti definiti tipi di dati per valori di grandi dimensioni. È possibile utilizzare i tipi di dati per valori di grandi dimensioni per archiviare fino a 2^31-1 byte di dati.
[!NOTA] Quando l'opzione 'large value types out of row' della stored procedure sp_tableoption è impostata su OFF, il limite di archiviazione all'interno di righe per i tipi di dati per valori di grandi dimensioni è pari a 8.000 byte. Una struttura di livello principale di 16 byte viene archiviata all'interno di righe quando questa opzione è impostata su ON. Per ulteriori informazioni, vedere sp_tableoption (Transact-SQL).
I tipi di dati per valori di grandi dimensioni hanno un comportamento simile ai tipi di dati per valori di dimensioni minori, ovvero varchar, nvarchar e varbinary. Questa analogia consente a SQL Server di archiviare e recuperare dati di tipo carattere, Unicode e binari di grandi dimensioni in modo più efficiente.
I tipi di dati per valori di grandi dimensioni consentono di utilizzare SQL Server diversamente da quanto consentito dai tipi di dati text, ntext e image delle versioni precedenti di SQL Server. In SQL Server 2005, ad esempio, è possibile definire variabili per archiviare quantità elevate di dati, fino a 2^31 byte di dati di tipo carattere, binari e Unicode. Per ulteriori informazioni, vedere Variabili Transact-SQL.
Nella tabella seguente viene illustrata la relazione tra i tipi di dati per valori di grandi dimensioni e i tipi di dati per valori di dimensioni minori disponibili nelle versioni precedenti di SQL Server.
Tipi di dati per valori di grandi dimensioni | Dati LOB (Large Object) delle versioni precedenti |
---|---|
varchar(max) |
text* |
nvarchar(max) |
ntext* |
varbinary(max) |
image |
* Poiché i client SQL Server 6.5 non supportano il tipo di dati ntext, non riconoscono il tipo di dati nvarchar(max).
Importante: |
---|
Utilizzare i tipi di dati varchar(max), nvarchar(max) e varbinary(max) anziché i tipi di dati text, ntext e image. |
I tipi di dati per valori di grandi dimensioni hanno lo stesso comportamento dei tipi di dati per valori di dimensioni minori varchar(n), nvarchar(n) e varbinary(n). Di seguito viene descritto l'utilizzo dei tipi di dati per valori di grandi dimensioni in alcuni scenari specifici:
- Cursori
Poiché è possibile definire variabili di tipi di dati per valori di grandi dimensioni, è possibile inserire colonne di questo tipo di dati restituite da un'istruzione FETCH in variabili locali. Per ulteriori informazioni, vedere FETCH (Transact-SQL).
L'utilizzo di tipi di dati per valori di grandi dimensioni non influisce sull'utilizzo di cursori per l'applicazione della conversione dei tipi di cursori. - Aggiornamenti a blocchi
L'istruzione UPDATE supporta ora una clausola **.**WRITE( ) per l'esecuzione di aggiornamenti parziali nelle colonne di dati per valori di grandi dimensioni sottostanti. Si tratta di un comportamento simile alle operazioni relative ai puntatori di testo WRITETEXT e UPDATETEXT, supportate nei tipi di dati text, ntext e image delle versioni precedenti di SQL Server. Per ulteriori informazioni, vedere UPDATE (Transact-SQL). - Trigger
I trigger AFTER sono consentiti nei riferimenti alle colonne di tipi di dati per valori di grandi dimensioni nelle tabelle inserted e deleted. Per ulteriori informazioni, vedere CREATE TRIGGER (Transact-SQL). - Funzioni per i valori stringa
Le funzioni per i valori stringa predefinite che possono essere utilizzate per i dati di tipo carattere e binari sono state migliorate per supportare i tipi di dati per valori di grandi dimensioni come argomenti. Tra le funzioni per i valori stringa sono incluse le seguenti:- COL_LENGTH
- CHARINDEX
- PATINDEX
- LEN
- DATALENGTH
- SUBSTRING
Per informazioni sulle funzioni per i valori stringa, vedere Funzioni per i valori stringa (Transact-SQL).
Vedere anche
Concetti
Tipi di dati (Motore di database)