Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11633|Atbildi: 0

[Avots] SQL Server ir atšķirība starp teksta un varchar(max) datu tipiem

[Kopēt saiti]
Publicēts 13.06.2018 11:07:11 | | |
Pirmkārt, varchar(max) aizstāj Microsoft izmantoto teksta datu tipu,Vecāki lauku tipi, piemēram, teksts, var tikt atcelti nākamajās versijās。 Tātad, kādu tekstu var saglabāt, varchar( max) noteikti var saglabāt. Patiesībā rakstzīmju skaits, ko tas var saglabāt, ir ļoti liels. 420 miljoni rakstzīmju, kuras var saglabāt, ir grūti sasniedzamas, kas, manuprāt, ir grūti sasniedzamas.

Es zināju tikai iepriekšteksts un attēls ir datu tipi, kas SQL Server var būt novecojuši, bet konkrētais iemesls nav skaidrs, kad es šodien lasīju, es atradu atšķirību starp tekstu un varchar(max) un nvarchar(max), galvenokārt operatoru ierobežojuma dēļ, tekstu var izmantot tikai ar šādām funkcijām:
funkcijaPaziņojums
DATU GARUMSLASĪT TEKSTU
PATINDEXIESTATĪT TEKSTA LIELUMU
APAKŠVIRKNEATJAUNINĀT TEKSTU
TEKSTSPTRRAKSTĪT TEKSTU
TEKSTSDERĪGS


Piemēram, ja kolonnas "Teksts" datu tips ir teksts, to nevar izmantot tādām darbībām kā "=" un "left()", piemēram, šādam piemēram:

Izveidojiet tabulu un aizpildiet datus:

if exists (atlasiet * no sysobjects, kur id = OBJECT_ID('[asdf]') un OBJECTPROPERTY(id, 'IsUserTable') = 1)

NOMEŠANAS TABULA [asdf]

IZVEIDOT TABULU [asdf] (

[inttest] [int] IDENTITĀTE (1, 1) NAV NULLE,

[teksts] [teksts] NULL ,

[varcharmax] varchar(max) NULL )

MAINĪT TABULU [asdf] AR NOCHECK PIEVIENOT IEROBEŽOJUMU [PK_asdf] PRIMĀRĀ ATSLĒGA NAV KLASTERĒTA ( [inttest] )



IESTATĪT IDENTITY_INSERT [ASDF] IESLĒGTS



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



IZSLĒGT IDENTITY_INSERT [asdf]

Palaidiet vaicājumu:

1. pieprasījums:
SELECT [teksts]

      ,[varcharmax]

NO [testDB]. [DBO]. [asdf]

kur

[teksts] ='11111' UN

[varcharmax] = '1111111'


Tiek parādīts šāds kļūdas ziņojums:

Ziņojums 402, 16. līmenis, 1. stāvoklis, 1. rinda

Datu tipi text un varchar nav saderīgi ar operatoru vienāds ar.

2. pieprasījums:
SELECT [teksts]

      ,[varcharmax]

NO [testDB]. [DBO]. [asdf]

kur

[varcharmax] = '1111111'


var sekmīgi darboties



MS SQL2005 un jaunākās versijās pievienojiet lielu vērtību datu tipus (varchar(max), nvarchar(max), varbinary(max)). Lielas vērtības datu tips var saglabāt līdz 2^30-1 baitam datu.

Šie datu tipi uzvedības ziņā ir identiski mazākiem datu tipiem varchar, nvarchar un varbinary.

Microsoft apgalvo, ka iepriekšējie teksta, ntext un attēla datu tipi ir aizstāti ar šo datu tipu, un atbilstība starp tiem ir šāda:

varchar(max)-------teksts;

nvarchar(max)-----ntext;

varbinary(max)----attēls.



Izmantojot lielas vērtības datu tipus, ir daudz elastīgāk strādāt ar lielas vērtības datiem nekā iepriekš. Piemēram, tekstu nevar lietot "like" iepriekš, bet pēc varchar(max) šo problēmu nav, jo varchar(max) uzvedībā ir tas pats, kas varchar(n), tāpēc to, ko var izmantot varcahr, var izmantot varchar(max).

Turklāt tas atbalsta AFTER trigeru izmantošanu lielu vērtību datu tipa kolonnu atsaucēm ievietotās un izdzēstās tabulās. teksts nav labs, īsāk sakot, pēc lielās vērtības datu tipa izmantošanas es esmu "mans viduklis vairs nesāp, kājas nav sāpīgas, un es varu uzkāpt uz sesto stāvu vienā elpas vilcienā". Ko jūs gaidāt, izmantojiet lielo vērtību veidu.






Iepriekšējo:Uh-huh, eh-huh, eh-huh
Nākamo:EF (lambda izteiksme) vaicā vairākus izņēmumus, kas radušies datos
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com