Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 11633|Svar: 0

[Källa] Det finns en skillnad mellan Text- och varchar(max)-datatyper i SQL Server

[Kopiera länk]
Publicerad på 2018-06-13 11:07:11 | | |
För det första är varchar(max) en ersättning för den textdatatyp som används av Microsoft,Äldre fälttyper som text kan avbrytas i senare versioner。 Så vilken text som kan sparas, varchar(max) kan definitivt sparas. Faktum är att antalet tecken den kan lagra är mycket stort. De 420 miljoner tecken som kan lagras är svåra att nå, vilket jag tror är svårt att nå.

Jag visste det bara innantext och bild är datatyper som kan vara föråldrade av SQL Server, men den specifika anledningen är oklar, när jag läste idag fann jag skillnaden mellan text och varchar(max) och nvarchar(max), främst på grund av begränsningen av operatorer, text kan endast användas av följande funktioner:
funktionUttalande
DATALÄNGDLÄSTEXT
PATINDEXSTÄLL TEXTSTORLEK
UNDERSTRÄNGUPPDATERINGSTEXT
TEXTPTRSKRIVTEXT
TEXTVALID


Till exempel, om datatypen i kolumnen "Text" är text, kan den inte användas för operationer som "=" och "left()", som i följande exempel:

Skapa en tabell och fyll i datan:

om finns (välj * från sysobjects där id = OBJECT_ID('[asdf]') och OBJECTPROPERTY(id, 'IsUserTable') = 1)

DROP TABLE [asdf]

SKAPA TABELL [asdf] (

[inttest] [int] IDENTITET (1, 1) INTE NULL ,

[sms] [sms] NULL ,

[varcharmax] varchar(max) NULL )

ALTER TABLE [ASDF] MED NOCHECK ADD CONSTRAINT [PK_asdf] PRIMÄRNYCKEL ICKE-KLUSTRADE ( [inttest])



SÄTT IDENTITY_INSERT [ASDF] PÅ



INFOGA [asdf] ( [inttest] , [text] , [varcharmax] ) VÄRDEN ( 1 , '1111111' , '1111111' )



SÄTT IDENTITY_INSERT [ASDF] IGÅNG

Kör frågan:

Förfrågan 1:
VÄLJ [text]

      ,[varcharmax]

FRÅN [testDB]. [dbo]. [ASDF]

där

[text] ='11111' OCH

[varcharmax] = '1111111'


Följande felmeddelande visas:

MSG 402, Nivå 16, Stat 1, Rad 1

Datatyperna text och varchar är inte kompatibla i equal-to-operatorn.

Förfrågan 2:
VÄLJ [text]

      ,[varcharmax]

FRÅN [testDB]. [dbo]. [ASDF]

där

[varcharmax] = '1111111'


kan köra framgångsrikt



I MS SQL2005 och uppåt, lägg till stora värdedatatyper (varchar(max), nvarchar(max), varbinär(max)). Datatypen med stort värde kan lagra upp till 2^30–1 byte data.

Dessa datatyper är beteendemässigt identiska med de mindre datatyperna varchar, nvarchar och varbinära.

Microsofts påstående är att ersätta de tidigare text-, ntext- och bilddatatyperna med denna datatyp, och korrespondensen mellan dem är:

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

nvarchar(max)-----ntext;

varbinary(max)----bild.



Med datatyper med stort värde är det mycket mer flexibelt att arbeta med data med stort värde än tidigare. Till exempel kan text inte användas 'lika' tidigare, men efter varchar(max) finns inga dessa problem, eftersom varchar(max) är samma som varchar(n) i beteende, så det som kan användas i varchar(max) kan användas på varchar(max).

Dessutom stödjer detta användningen av AFTER-triggers på kolumnreferenser för stora datatyper i insatta och raderade tabeller. Texten är inte bra, kort sagt, efter att ha använt högvärdesdatatypen är jag "min midja gör inte längre ont, mina ben är inte ömma, och jag kan ta mig upp till sjätte våningen på ett andetag". Vad väntar du på, använd typen med stort värde.






Föregående:Uh-huh, eh-huh, eh-huh
Nästa:EF (lambda-uttryck) förfrågar flera undantag som påträffas i datan
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com