Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 11633|Răspunde: 0

[Sursă] Există o diferență între tipurile de date Text și varchar(max) în SQL Server

[Copiază linkul]
Postat pe 13.06.2018 11:07:11 | | |
În primul rând, varchar(max) este un substitut pentru tipul de date text folosit de Microsoft,Tipuri mai vechi de câmpuri, cum ar fi textul, pot fi anulate în versiunile ulterioare。 Deci ce text poate fi salvat, varchar( max) poate fi salvat cu siguranță. De fapt, numărul de caractere pe care le poate stoca este foarte mare. Cele 420 de milioane de caractere care pot fi stocate sunt greu de accesat, ceea ce cred că este greu de atins.

Știam doar înainteTextul și imaginea sunt tipuri de date care pot fi depășite de SQL Server, dar motivul specific nu este clar, când am citit astăzi, am găsit diferența dintre text și varchar(max) și nvarchar(max), în principal din cauza restricției operatorilor, textul poate fi folosit doar de următoarele funcții:
funcționaEnunț
LUNGIMEA DATELORTEXTUL CITIT
PATINDEXSETEAZĂ DIMENSIUNEA TEXTULUI
SUBSTRINGACTUALIZARE
TEXTPTRWRITETEXT
TEXTVALID


De exemplu, dacă tipul de date al coloanei "Text" este text, atunci nu poate fi folosit pentru operații precum "=" și "left()", cum ar fi următorul exemplu:

Creează un tabel și completează datele:

dacă există (selectează * din sysobjects unde id = OBJECT_ID('[asdf]') și OBJECTPROPERTY(id, 'IsUserTable') = 1)

MASĂ DE CĂDERE [ASDF]

CREATE TABLE [asdf] (

[inttest] [int] IDENTITATE (1, 1) NENULĂ ,

[text] [text] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [ASDF] CU NOCHECK ADD CONSTRAINT [PK_asdf] CHEIE PRIMARĂ NECLUSTERATĂ ( [inttest] )



PORNEȘTE IDENTITY_INSERT [ASDF]



INSERT [asdf] ( [inttest] , [text] , [varcharmax] ) VALORI ( 1 , '1111111', '1111111' )



PORNEȘTE IDENTITY_INSERT [ASDF]

Rulează interogarea:

Anchetă 1:
SELECT [text]

      ,[varcharmax]

DE la [testDB]. [dbo]. [ASDF]

unde

[text] ='11111' ȘI

[varcharmax] = '1111111'


Următorul mesaj de eroare apare:

Msg 402, Nivelul 16, Stat 1, Linia 1

Tipurile de date text și varchar nu sunt compatibile în operatorul egal cu .

Ancheta 2:
SELECT [text]

      ,[varcharmax]

DE la [testDB]. [dbo]. [ASDF]

unde

[varcharmax] = '1111111'


poate funcționa cu succes



În MS SQL2005 și versiuni, adaugă tipuri de date cu valoare mare (varchar(max), nvarchar(max), varbinary(max)). Tipul de date cu valoare mare poate stoca până la 2^30-1 octet de date.

Aceste tipuri de date sunt comportamental identice cu tipurile mai mici varchar, nvarchar și varbinary.

Afirmația Microsoft este de a înlocui tipurile anterioare de text, ntext și imagini cu acest tip de date, iar corespondența dintre ele este:

varchar(max)-------text;

nvarchar(max)-----ntext;

varbinary(max)----image.



Cu tipuri de date cu valoare mare, este mult mai flexibil să lucrezi cu date de valoare mare decât înainte. De exemplu, textul nu poate fi folosit "ca" înainte, dar după varchar(max) nu mai există aceste probleme, deoarece varchar(max) este același ca comportament cu varchar(n), deci ceea ce poate fi folosit în varcahr poate fi folosit pe varchar(max).

În plus, aceasta suportă utilizarea declanșatoarelor AFTER pe referințe de coloane de tip de date de valoare mare în tabelele inserate și șterse. Textul nu e bun, pe scurt, după ce am folosit tipul de date cu valoare mare, sunt "nu mă mai doare talia, picioarele nu mă dor și pot urca la etajul șase dintr-o singură respirație". Ce mai aștepți, folosește tipul cu valoare mare.






Precedent:Uh-huh, eh-huh, eh-huh
Următor:EF (expresia lambda) interoghează mai multe excepții întâlnite în date
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com