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).

ms178158.note(it-it,SQL.90).gifImportante:
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:

Vedere anche

Concetti

Tipi di dati (Motore di database)

Guida in linea e informazioni

Assistenza su SQL Server 2005