Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 11633|Risposta: 0

[Fonte] Esiste una differenza tra i tipi di dati Text e varchar(max) in SQL Server

[Copiato link]
Pubblicato su 13/06/2018 11:07:11 | | |
Innanzitutto, varchar(max) è un sostituto del tipo di dato testuale usato da Microsoft,Tipi di campo più vecchi, come il testo, possono essere cancellati nelle versioni successive。 Quindi quale testo può essere salvato, varchar(max) può sicuramente essere salvato. In effetti, il numero di caratteri che può memorizzare è molto elevato. I 420 milioni di caratteri che possono essere memorizzati sono difficili da raggiungere, e credo che sia difficile da raggiungere.

Lo sapevo solo primatesto e immagine sono tipi di dati che potrebbero diventare obsoleti da SQL Server, ma la ragione specifica non è chiara, quando ho letto oggi, ho trovato la differenza tra text e varchar(max) e nvarchar(max), principalmente a causa della restrizione degli operatori, il testo può essere usato solo dalle seguenti funzioni:
funzioneAffermazione
DATALENGTHREADTEXT
PATINDEXIMPOSTA LA DIMENSIONE DEL TESTO
SOTTOSTRINGAAGGIORNAMENTO TESTO
TEXTPTRWRITETEXT
TEXTVALID


Ad esempio, se il tipo di dato della colonna "Testo" è testo, allora non può essere usato per operazioni come "=" e "left()", come nel seguente esempio:

Crea una tabella e popolare i dati:

if exists (seleziona * da sysobjects dove id = OBJECT_ID('[asdf]') e OBJECTPROPERTY(id, 'IsUserTable') = 1)

TAVOLO DI CONSEGNA [ASDF]

CREATE TABLE [asdf] (

[inttest] [int] IDENTITÀ (1, 1) NON NULLA ,

[testo] [testo] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [ASDF] CON NOCHECK ADD VINCOLO [PK_asdf] CHIAVE PRIMARIA NON CLUSTERIZZATA ( [inttest] )



INIZIA IDENTITY_INSERT [ASDF]



INSERIRE [asdf] ( [inttest] , [testo] , [varcharmax] ) VALORI ( 1 , '1111111', '1111111' )



ATTIVA IDENTITY_INSERT [ASDF]

Esegui la query:

Richiesta 1:
SELECT [testo]

      ,[varcharmax]

DA [testDB]. [dbo]. [ASDF]

dove

[testo] ='11111' E

[varcharmax] = '1111111'


Compare il seguente messaggio di errore:

Msg 402, Livello 16, Stato 1, Linea 1

I tipi di dati text e varchar non sono compatibili nell'operatore uguale a .

Inchiesta 2:
SELECT [testo]

      ,[varcharmax]

DA [testDB]. [dbo]. [ASDF]

dove

[varcharmax] = '1111111'


può funzionare con successo



Nei MS SQL2005 e superiori, aggiungi tipi di dati di grande valore (varchar(max), nvarchar(max), varbinary(max)). Il tipo di dato di grande valore può memorizzare fino a 2^30-1 byte di dati.

Questi tipi di dati sono comportamentalmente identici ai tipi di dati più piccoli varchar, nvarchar e varbinary.

L'affermazione di Microsoft è di sostituire i precedenti tipi di dati, testo e immagine con questo tipo di dato, e la corrispondenza tra di essi è:

varchar(max)-------testo;

nvarchar(max)-----ntext;

varbinary(max)----image.



Con i tipi di dati di grande valore, è molto più flessibile lavorare con dati di grande valore rispetto a prima. Ad esempio, il testo non può essere usato 'come' prima, ma dopo varchar(max) non ci sono questi problemi, perché varchar(max) è uguale a varchar(n) nel comportamento, quindi ciò che può essere usato in varcahr può essere usato su varchar(max).

Inoltre, questo supporta l'uso di trigger AFTER su riferimenti di colonne di grande valore in tabelle inserite e eliminate. Il testo non è buono, in breve, dopo aver usato il tipo di dato di grande valore, sono stato "la mia vita non fa più male, le gambe non mi fanno male e posso salire al sesto piano in un solo respiro". Cosa aspetti, usa il tipo di grande valore.






Precedente:Uh-huh, eh-huh, eh-huh
Prossimo:EF (espressione lambda) interroga diverse eccezioni incontrate nei dati
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com