Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 11633|Vastaus: 0

[Lähde] SQL Serverissä on ero tekstin ja varchar(max)-tietotyyppien välillä

[Kopioi linkki]
Julkaistu 13.6.2018 11.07.11 | | |
Ensinnäkin varchar(max) korvaa Microsoftin käyttämän tekstitietotyypin,Vanhemmat kenttätyypit, kuten teksti, voidaan peruuttaa myöhemmissä versioissa。 Joten mitä tekstiä voi tallentaa, varchar (max) voidaan ehdottomasti tallentaa. Itse asiassa tallennettavien merkkien määrä on hyvin suuri. 420 miljoonaa tallennettavaa merkkiä on vaikea saavuttaa, mikä mielestäni on vaikeaa.

Tiesin sen vain aiemminteksti ja kuva ovat tietotyyppejä, jotka voivat olla SQL Serverin vanhentuneita, mutta tarkka syy ei ole selvä, kun luin tänään, löysin eron tekstin ja varchar(max) ja nvarchar(max) välillä, pääasiassa operaattoreiden rajoitusten vuoksi, tekstiä voivat käyttää vain seuraavat funktiot:
funktioLausunto
DATAPITUUSLUETEKSTI
PATINDEXASETA TEKSTIKOKO
ALIMERKKIJONOPÄIVITYSTEKSTI
TEXTPTRKIRJOITA
TEXTVALID


Esimerkiksi, jos "Teksti"-sarakkeen tietotyyppi on teksti, sitä ei voi käyttää operaatioihin kuten "=" ja "left()", kuten seuraavassa esimerkissä:

Luo taulukko ja täytä data:

jos on olemassa (valitse * sysobjectsista, missä id = OBJECT_ID('[asdf]') ja OBJECTPROPERTY(id, 'IsUserTable') = 1)

PUDOTUSPÖYTÄ [asdf]

LUO TAULU [asdf] (

[inttest] [int] IDENTITEETTI (1, 1) EI NULL ,

[teksti] [teksti] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [ASDF] WITH NOCHECK ADD CONSTRAINT [PK_asdf] PRIMARY KEY NONCLUSTERED ( [inttest] )



ASETA IDENTITY_INSERT [asdf] PÄÄLLE



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



LAITA IDENTITY_INSERT [asdf] LIIKKEELLE

Suorita kysely:

Tiedustelu 1:
VALITSE [teksti]

      ,[varcharmax]

LÄHTEESTÄ [testDB]. [dbo]. [ASDF]

missä

[teksti] ='11111' JA

[varcharmax] = '1111111'


Seuraava virheilmoitus ilmestyy:

Msg 402, taso 16, osavaltio 1, linja 1

Tietotyypit teksti ja varchar eivät ole yhteensopivia operaattorin kanssa.

Tiedustelu 2:
VALITSE [teksti]

      ,[varcharmax]

LÄHTEESTÄ [testDB]. [dbo]. [ASDF]

missä

[varcharmax] = '1111111'


voi toimia onnistuneesti



MS SQL2005:ssa ja sitä ylemmissä lisää suuret arvot tietotyypit (varchar(max), nvarchar(max), varbinary(max)). Suuriarvoinen datatyyppi voi tallentaa jopa 2^30-1 tavun dataa.

Nämä tietotyypit ovat käyttäytymiseltään identtisiä pienempien tietotyyppien varchar, nvarchar ja varbinary kanssa.

Microsoftin väite on korvata aiemmat teksti-, n-teksti- ja kuvatyypit tällä tietotyypillä, ja niiden välinen vastaavuus on:

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

nvarchar(max)-----ntext;

varbinaari(maksimi)----kuva.



Suurten arvojen datatyypeillä on paljon joustavampaa työskennellä suuren arvon datan kanssa kuin ennen. Esimerkiksi tekstiä ei voi käyttää 'like' ennen, mutta varchar(max):n jälkeen näitä ongelmia ei ole, koska varchar(max) on käytökseltään sama kuin varchar(n), joten varcahrissa käytettävää voidaan käyttää varchar(max):ssa.

Lisäksi tämä tukee AFTER-triggerien käyttöä suuriarvoisten tietotyyppien sarakkeviittauksissa lisätyissä ja poistetuissa taulukoissa. Teksti ei ole hyvä, lyhyesti sanottuna, kun käytin suuren arvon datatyyppiä, olen "vyötäröni ei enää sattu, jalkani eivät ole kipeät, ja voin kiivetä kuudennelle kerrokselle yhdellä hengenvedolla". Mitä odotat, käytä suurten arvojen tyyppiä.






Edellinen:Uh-huh, eh-huh, eh-huh
Seuraava:EF (lambda-lauseke) kysyy useita poikkeuksia, joita datassa esiintyy
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com