Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 11633|Atsakyti: 0

[Šaltinis] SQL serveryje yra skirtumas tarp teksto ir varchar(max) duomenų tipų

[Kopijuoti nuorodą]
Paskelbta 2018-06-13 11:07:11 | | |
Pirma, varchar(max) yra "Microsoft" naudojamo teksto duomenų tipo pakaitalas,Senesni laukų tipai, pvz., tekstas, vėlesnėse versijose gali būti atšaukti。 Taigi, kokį tekstą galima išsaugoti, varchar( max) tikrai galima išsaugoti. Tiesą sakant, simbolių skaičius, kurį jis gali išsaugoti, yra labai didelis. 420 milijonų simbolių, kuriuos galima saugoti, yra sunkiai pasiekiami, o tai, manau, yra sunkiai pasiekiama.

Aš žinojau tik anksčiautekstas ir vaizdas yra duomenų tipai, kurie gali būti pasenę SQL serveryje, bet konkreti priežastis nėra aiški, kai šiandien skaičiau, radau skirtumą tarp teksto ir varchar(max) ir nvarchar(max), daugiausia dėl operatorių apribojimo, tekstas gali būti naudojamas tik šiomis funkcijomis:
funkcijaPareiškimas
DUOMENŲ ILGISSKAITYTI TEKSTĄ
PATINDEXNUSTATYTI TEKSTO DYDĮ
POEILUTĖATNAUJINIMO TEKSTAS
TEXTPTRRAŠYTITEKSTĄ
TEKSTAS GALIOJA


Pavyzdžiui, jei stulpelio "Tekstas" duomenų tipas yra tekstas, jo negalima naudoti tokioms operacijoms kaip "=" ir "left()", pvz., šiame pavyzdyje:

Sukurkite lentelę ir užpildykite duomenis:

if exists (pasirinkite * iš sysobjects, kur id = OBJECT_ID('[asdf]') ir OBJECTPROPERTY(id, 'IsUserTable') = 1)

DROP LENTELĖ [asdf]

SUKURTI LENTELĘ [asdf] (

[inttest] [int] Tapatybė (1, 1) nėra nulinė,

[tekstas] [tekstas] NULL ,

[varcharmax] varchar(max) NULL )

KEISTI LENTELĘ [asdf] SU NOCHECK PRIDĖTI APRIBOJIMĄ [PK_asdf] PIRMINIS RAKTAS NESUGRUPUOTAS ( [inttest] )



NUSTATYTI IDENTITY_INSERT [asdf] ĮJUNGTA



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



IŠJUNGTI IDENTITY_INSERT [asdf]

Vykdyti užklausą:

1 užklausa:
SELECT [tekstas]

      ,[varcharmax]

IŠ [testDB]. [DBO]. [asdf]

kur

[text] ='11111' IR

[varcharmax] = '1111111'


Rodomas šis klaidos pranešimas:

Msg 402, 16 lygis, 1 būsena, 1 eilutė

Duomenų tipai text ir varchar nesuderinami su operatoriumi lygus su.

2 užklausa:
SELECT [tekstas]

      ,[varcharmax]

IŠ [testDB]. [DBO]. [asdf]

kur

[varcharmax] = '1111111'


gali sėkmingai veikti



MS SQL2005 ir naujesnėse versijose pridėkite didelės vertės duomenų tipus (varchar(max), nvarchar(max), varbinary(max)). Didelės vertės duomenų tipas gali saugoti iki 2^30-1 baitų duomenų.

Šie duomenų tipai elgsenos požiūriu yra identiški mažesniems duomenų tipams varchar, nvarchar ir varbinary.

"Microsoft" teigia, kad ankstesni teksto, ntext ir vaizdo duomenų tipai bus pakeisti šiuo duomenų tipu, o jų atitikimas yra:

varchar(max)-------tekstas;

nvarchar(max)-----ntext;

varbinary(max)----image.



Naudojant didelės vertės duomenų tipus, dirbti su didelės vertės duomenimis yra daug lanksčiau nei anksčiau. Pavyzdžiui, tekstas negali būti naudojamas "kaip" anksčiau, bet po varchar(max) šių problemų nėra, nes varchar(max) elgesiu yra tas pats, kas varchar(n), todėl tai, ką galima naudoti varcahr, gali būti naudojama varchar(max).

Be to, tai palaiko AFTER paleidiklių naudojimą didelės reikšmės duomenų tipo stulpelių nuorodose įterptose ir panaikintose lentelėse. tekstas nėra geras, trumpai tariant, panaudojus didelės vertės duomenų tipą, esu "juosmens nebeskauda, kojos neskauda, ir galiu vienu įkvėpimu pakilti į šeštą aukštą". Ko laukiate, naudokite didelės vertės tipą.






Ankstesnis:Uh-huh, eh-huh, eh-huh
Kitą:EF (lambda išraiška) pateikia užklausas kelioms duomenų išimtims
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com