|
|
Közzétéve 2018. 06. 13. 11:07:11
|
|
|

Először is, a varchar(max) helyettesíti a Microsoft által használt szöveges adattípust,A régebbi mezőtípusok, például a szöveg, a későbbi verziókban törölhetők。 Szóval melyik szöveget lehet elmenteni, a varchar (max) mindenképpen menthető. Valójában a karakterek száma, amit tárolhat, nagyon nagy. A 420 millió karakter, amit tárolni lehet, nehezen elérhető, ami szerintem nehéz.
Csak korábban tudtama szöveg és a kép olyan adattípusok, amelyeket az SQL Server elavult lehet, de a konkrét ok nem világos, amikor ma olvastam, megtaláltam a különbséget a szöveg és a varchar(max) és nvarchar(max) között, főként az operátorok korlátozása miatt, a szöveget csak a következő függvények használhatják:
| funkció | Nyilatkozat | | ADATHOSSZ | OLVASOTT SZÖVEG | | PATINDEX | ÁLLÍTSD BE A TEXTSIZE | | ALSTRING | FRISSÍTÉSI SZÖVEG | | TEXTPTR | ÍRJ | | TEXTVALID | |
Például, ha a "Szöveg" oszlop adattípusa szöveg, akkor nem használható olyan műveletekhez, mint a "=" és a "left()", például a következő példa:
Készíts egy táblát, és töltsd fel az adatokat:
ha létezik (válassz * a sysobjects-ből, ahol id = OBJECT_ID('[asdf]') és OBJECTPROPERTY(id, 'IsUserTable') = 1)
LEDOBÓ ASZTAL [asdf]
CREATE TABLE [asdf] (
[inttest] [int] IDENTITÁS (1, 1) NEM NULL ,
[szöveg] [szöveg] NULL ,
[varcharmax] varchar(max) NULL )
ALTER TABLE [ASDF] NOCHECK HOZZÁADÁSI KORLÁTOZÁSSAL [PK_asdf] ELSŐDLEGES KULCS NEM KLASZTEREZETT ( [inttest] )
ÁLLÍTSD IDENTITY_INSERT [ASDF] BEKAPCSOLNI
INSERT [asdf] ( [inttest] , [text] , [varcharmax] ) ÉRTÉKEK ( 1 , '1111111' , '1111111' )
INDÍTSD IDENTITY_INSERT [ASDF]
Futtatd le a lekérdezést:
1. kérdés: SELECT [szöveg]
,[Varcharmax]
FORRÁS: [testDB]. [dbo]. [ASDF]
ahol
[szöveg] ='11111' ÉS
[varcharmax] = '1111111'
A következő hibaüzenet jelenik meg:
402-es üzenet, 16. szint, 1. állam, 1. sor
A text és varchar adattípusok nem kompatibilisek az egyenlő operátor között.
2. kérdés: SELECT [szöveg]
,[Varcharmax]
FORRÁS: [testDB]. [dbo]. [ASDF]
ahol
[varcharmax] = '1111111'
sikeresen futni
Az MS SQL2005 és feletti esetekben adjunk hozzá nagy értékű adattípusokat (varchar(max), nvarchar(max), varbinary(max)). A nagy értékű adattípus akár 2^30-1 bájt adatot is képes tárolni.
Ezek az adattípusok viselkedésileg megegyeznek a kisebb adattípusokkal, mint a varchar, nvarchar és varbinary.
A Microsoft az állítása, hogy a korábbi szöveg, ntext és kép adattípusokat ezzel az adattípussal helyettesíti, és ezek közötti egyeztetés a következő:
varchar(max)-------text;
nvarchar(max)-----ntext;
varbinary(max)----image.
Nagy értékű adattípusoknál sokkal rugalmasabb a nagy értékű adatokkal való munkavégzés, mint korábban. Például a szöveget nem lehet 'like'-ben használni előtte, de a varchar(max) után nincsenek ilyen problémák, mert a varchar(max) viselkedésében ugyanaz, mint a varchar(n), így ami a varcahrban használható, az a varchar(max) esetében is használható.
Ezen felül támogatja az AFTER triggerek használatát nagy értékű adattípusú oszlophivatkozásokon a beillesztett és törölt táblákban. A szöveg nem jó, röviden, a nagy értékű adattípus használata után azt mondom: "a derékom már nem fáj, a lábaim nem fájnak, és egy lélegzetvétellel fel tudok menni a hatodik emeletre". Mire vársz, használd a nagy értékű típust.
|
Előző:Uh-huh, uh-huh, uh-huhKövetkező:EF (lambda kifejezés) több adatban előfordult kivételt kér
|