Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 11633|Svare: 0

[Kilde] Det er en forskjell mellom tekst- og varchar(max)-datatyper i SQL Server

[Kopier lenke]
Publisert på 13.06.2018 11:07:11 | | |
For det første er varchar(max) en erstatning for tekstdatatypen som brukes av Microsoft,Eldre felttyper som tekst kan kanselleres i senere versjoner。 Så hvilken tekst som kan lagres, varchar(max) kan definitivt lagres. Faktisk er antallet tegn den kan lagre veldig stort. De 420 millioner tegnene som kan lagres er vanskelige å nå, noe jeg tror er vanskelig å nå.

Jeg visste det bare førtekst og bilde er datatyper som kan være utdaterte av SQL Server, men den spesifikke grunnen er ikke klar, da jeg leste i dag, fant jeg forskjellen mellom tekst og varchar(max) og nvarchar(max), hovedsakelig på grunn av begrensningen av operatorer, tekst kan bare brukes av følgende funksjoner:
funksjonUtsagn
DATALENGDEREADTEXT
PATINDEXSETT TEKSTSTØRRELSE
DELSTRENGOPPDATERINGSTEKST
TEKSTPTRWRITETEXT
TEXTVALID


For eksempel, hvis datatypen i "Text"-kolonnen er tekst, kan den ikke brukes for operasjoner som "=" og "left()", som i følgende eksempel:

Lag en tabell og fyll ut dataene:

hvis finnes (velg * fra sysobjects der id = OBJECT_ID('[asdf]') og OBJECTPROPERTY(id, 'IsUserTable') = 1)

DROP-TABELL [asdf]

OPPRETT TABELL [asdf] (

[inttest] [int] IDENTITET (1, 1) IKKE NULL ,

[tekst] [tekst] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABELL [ASDF] MED NOCHECK ADD CONSTRAINT [PK_asdf] PRIMÆRNØKKEL IKKE-KLYNGET ( [inttest] )



SETT IDENTITY_INSERT [ASDF] PÅ



SETT inn [asdf] ( [inttest] , [tekst] , [varcharmax] ) VERDIER ( 1 , '1111111' , '1111111' )



SETT IDENTITY_INSERT [ASDF] I GANG

Kjør spørringen:

Forespørsel 1:
VELG [tekst]

      ,[varcharmax]

FRA [testDB]. [dbo]. [ASDF]

hvor

[tekst] ='11111' OG

[varcharmax] = '1111111'


Følgende feilmelding vises:

Melding 402, nivå 16, stat 1, linje 1

Datatypene text og varchar er ikke kompatible i equal-to-operatoren.

Forespørsel 2:
VELG [tekst]

      ,[varcharmax]

FRA [testDB]. [dbo]. [ASDF]

hvor

[varcharmax] = '1111111'


kan kjøre vellykket



I MS SQL2005 og oppover, legg til store verdidatatyper (varchar(max), nvarchar(max), varbinary(max)). Datatypen med stor verdi kan lagre opptil 2^30-1 byte data.

Disse datatypene er atferdsmessig identiske med de mindre datatypene varchar, nvarchar og varbinary.

Microsofts påstand er å erstatte de tidligere tekst-, ntekst- og bildedatatypene med denne datatypen, og korrespondansen mellom dem er:

varchar(max)-------tekst;

nvarchar(max)-----ntext;

varbinary(max)----bilde.



Med datatyper med stor verdi er det mye mer fleksibelt å jobbe med data med stor verdi enn før. For eksempel kan ikke tekst brukes 'som' før, men etter varchar(max) finnes det ikke disse problemene, fordi varchar(max) er det samme som varchar(n) i oppførsel, så det som kan brukes i varcahr kan også brukes på varchar(max).

I tillegg støtter dette bruk av AFTER-triggere på kolonnereferanser med store verdier i datatyper i innsatte og slettede tabeller. Teksten er ikke bra, kort sagt, etter å ha brukt datatypen med stor verdi, er jeg «midjen min gjør ikke vondt lenger, beina mine er ikke ømme, og jeg kan gå opp til sjette etasje i ett åndedrag». Hva venter du på? Bruk typen med stor verdi.






Foregående:Uh-huh, eh-huh, eh-huh
Neste:EF (lambda-uttrykk) spørringer flere unntak som finnes i dataene
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com