|
|
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:
| funkcija | Izjava | | DOLŽINA PODATKOV | READTEXT | | PATINDEX | NASTAVI VELIKOST BESEDILA | | PODNIZ | POSODOBLJENO BESEDILO | | TEXTPTR | WRITETEXT | | 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-huhNaslednji:EF (Lambda izraz) poizveduje več izjem, ki se pojavijo v podatkih
|