Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 11633|Odgovoriti: 0

[Vir] Obstaja razlika med podatkovnimi tipi Text in varchar(max) v SQL Serverju

[Kopiraj povezavo]
Objavljeno na 13. 06. 2018 11:07:11 | | |
Prvič, varchar(max) je nadomestek za besedilni podatkovni tip, ki ga uporablja Microsoft,Starejše vrste polj, kot je besedilo, se lahko v kasnejših različicah prekličejo。 Torej, katero besedilo se da shraniti, varchar (max) se zagotovo lahko shrani. Pravzaprav je število znakov, ki jih lahko shrani, zelo veliko. 420 milijonov znakov, ki jih je mogoče shraniti, je težko dosegljivih, kar verjamem, da je težko doseči.

Jaz sem vedel le prejbesedilo in slika sta podatkovna tipa, ki ju SQL Server morda zastarel, vendar natančen razlog ni jasen; ko sem danes bral, sem ugotovil razliko med besedilom in varchar(max) ter nvarcharjem(max), predvsem zaradi omejitve operatorjev, besedilo lahko uporabljajo le naslednje funkcije:
funkcijaIzjava
DOLŽINA PODATKOVREADTEXT
PATINDEXNASTAVI VELIKOST BESEDILA
PODNIZPOSODOBLJENO BESEDILO
TEXTPTRWRITETEXT
TEXTVALID


Na primer, če je podatkovni tip stolpca "Text" besedilo, ga ni mogoče uporabiti za operacije, kot sta "=" in "left()", kot je naslednji primer:

Ustvarite tabelo in napolnite podatke:

, če obstaja (izberi * iz sysobjects, kjer id = OBJECT_ID('[asdf]') in OBJECTPROPERTY(id, 'IsUserTable') = 1)

MIZA ZA SPUŠČANJE [ASDF]

USTVARI TABELO [asdf] (

[inttest] [int] IDENTITETA (1, 1) NI NIČELNA ,

[besedilo] [besedilo] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABELA [asdf] Z NOCHECK OMEJITVIJO ZA DODAJANJE [PK_asdf] PRIMARNI KLJUČ NEGRUČEN ( [inttest] )



NASTAVI IDENTITY_INSERT [ASDF] NA



VSTAVI [asdf] ( [inttest] , [besedilo] , [varcharmax] ) VREDNOSTI ( 1 , '1111111', '1111111' )



ZAČNI IDENTITY_INSERT [ASDF]

Zaženi poizvedbo:

Vprašanje 1:
IZBERI [besedilo]

      ,[varcharmax]

IZ [testDB]. [dbo]. [asdf]

kjer

[besedilo] ='11111' IN

[varcharmax] = '1111111'


Pojavi se naslednje sporočilo o napaki:

Msg 402, nivo 16, stanje 1, linija 1

Podatkovni tipi text in varchar nista združljiva v enakovrednem operatorju.

Vprašanje 2:
IZBERI [besedilo]

      ,[varcharmax]

IZ [testDB]. [dbo]. [asdf]

kjer

[varcharmax] = '1111111'


lahko uspešno teče



V MS SQL2005 in višjih dodajte velike podatkovne tipe (varchar(max), nvarchar(max), varbinary(max)). Tip podatkov z veliko vrednostjo lahko shrani do 2^30-1 bajt podatkov.

Ti podatkovni tipi so vedenjsko enaki manjšim podatkovnim tipom varchar, nvarchar in varbinary.

Microsoftova trditev je, da prejšnje vrste besedila, ntexta in slik zamenjajo s tem tipom podatkov, pri čemer je medsebojna korespondenca naslednja:

varchar(max)-------besedilo;

nvarchar(max)-----ntext;

varbinary(max)----slika.



Pri velikih vrednostnih podatkovnih tipih je delo z velikimi vrednostnimi podatki veliko bolj prilagodljivo kot prej. Na primer, besedila ni mogoče uporabiti 'kot' prej, vendar po varchar(max) teh težav ni, ker je varchar(max) enak varchar(n) po vedenju, zato se lahko tisto, kar se uporabi v varcahr, uporabi tudi na varchar(max).

Poleg tega to podpira uporabo sprožilcev AFTER pri referencah stolpcev z velikimi vrednostmi v vstavljenih in izbrisanih tabelah. Besedilo ni dobro, skratka, po uporabi velike vrednosti podatkovnega tipa sem "moj pas ne boli več, noge me ne bolijo in lahko se povzpnem do šestega nadstropja v enem samem dihu". Kaj še čakaš, uporabi tip velike vrednosti.






Prejšnji:Uh-huh, eh-huh, eh-huh
Naslednji:EF (Lambda izraz) poizveduje več izjem, ki se pojavijo v podatkih
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com