Domanda

Possibile duplicato:
Tipo di testo SQL Server vs. Tipo di dati VARCHAR
Utilizzo di VARCHAR (MAX) vs Testo su SQL Server

Da questo articolo, sembra che entrambi abbiano la stessa capacità di dimensioni: http://msdn.microsoft.com/en-us/library/ms143432.aspx

È davvero corretto? Quali sono le vere differenze?

Ho appena migrato alcuni dati da Oracle (CLOB e l'ho trasformato in un varchar (max), ma sembra che abbia comunque troncato alcuni dei valori, dovrei usare invece il testo?

Grazie!

È stato utile?

Soluzione

No, non dovresti usare TEXT. Per uno, È stato deprecato da SQL Server 2005, e scoprirai anche che molte operazioni di stringa non funzionano contro di esso. Non usare TEXT, NTEXT o IMAGE All - Usa VARCHAR(MAX), NVARCHAR(MAX) o VARBINARY(MAX) invece.

Altri suggerimenti

I tipi legacy (testo, ntext, immagine) sono deprecati e il supporto per loro verrà abbandonato in una versione futura di SQL Server.

Ci sono differenze significative nel modo in cui li usi. I nuovi tipi massimi supportano aggiornamenti efficienti con il .WRITE sintassi. I tipi di eredità hanno un insieme arcano di funzioni per ottenere lo stesso (TEXTPTR, UPDATETEXT, sp_invalidate_testptr).

I nuovi tipi massimi possono essere utilizzati in funzioni come REPLACE o SUBSTRING, qualsiasi funzione che accetta un file VARCHAR(N) accetterà anche un VARCHAR(MAX).

I tipi legacy non supportano la conversione implicita che supporta i tipi massimi, vedi Conversioni del tipo di dati.

Alcune caratteristiche del motore funzionano con tipi massimi, ma non con quelli legacy, ad es. Operazioni online (in SQL 11 supportano le tabelle con macchie)

L'articolo collegato si occupa solo dell'allocazione dello spazio. Come minimo, saperlo I tipi di dati di testo, ntext e immagini verranno rimossi dalle versioni future di SQL Server Quindi, per le nuove tabelle, utilizzare varchar (max), nvarchar (max) o varbinary (max).

Di uguale importanza sarebbe come Uno interagisce con quei valori. Preferiresti usare la colonna standard = 'Valore davvero lungo' o UpdateText e altre operazioni meno comuni per lavorare su una colonna a causa del tipo di dati?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top