Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 11633|Odpowiedź: 0

[Źródło] Istnieje różnica między typami danych Text a varchar(max) w SQL Server

[Skopiuj link]
Opublikowano 13.06.2018 11:07:11 | | |
Po pierwsze, varchar(max) jest substytutem dla typu danych tekstowych używanych przez Microsoft,Starsze typy pól, takie jak tekst, mogą zostać usunięte w kolejnych wersjach。 Więc co można uratować, varchar (maksymalnie) zdecydowanie można uratować. W rzeczywistości liczba znaków, które może przechowywać, jest bardzo duża. 420 milionów znaków, które można przechowywać, jest trudnych do osiągnięcia, co moim zdaniem jest trudne do osiągnięcia.

Wiedziałem tylko wcześniejtekst i obraz to typy danych, które mogą być przestarzałe przez SQL Server, ale dokładny powód nie jest jasny, gdy dziś czytałem, zauważyłem różnicę między tekstem a varchar(max) a nvarchar(max), głównie ze względu na ograniczenia operatorów, tekst może być używany tylko przez następujące funkcje:
funkcjaOświadczenie
DŁUGOŚĆ DANYCHREADTEXT
PATINDEXUSTAW ROZMIAR TEKSTU
PODCIĄGAKTUALIZACJA TEKST
TEXTPTRWRITETEXT
TEXTVALID


Na przykład, jeśli typ danych kolumny "Tekst" to tekst, nie może być używany do operacji takich jak "=" i "left()", jak w następującym przykładzie:

Stwórz tabelę i wypełnij dane:

jeśli istnieje (wybierz * z sysobjectów, gdzie id = OBJECT_ID('[asdf]') oraz OBJECTPROPERTY(id, 'IsUserTable') = 1)

DROP TABLE [asdf]

UTWÓRZ TABELĘ [asdf] (

[inttest] [int] TOŻSAMOŚĆ (1, 1) NIE ZEROWA ,

[tekst] [tekst] NULL ,

[varcharmax] varchar(max) NULL )

TABELA ALTERÓW [asdf] Z OGRANICZENIEM DODAWANIA BEZ CHECKU [PK_asdf] KLUCZ GŁÓWNY NIEKLASTROWANY ( [inttest] )



USTAW IDENTITY_INSERT [ASDF] WŁĄCZONE



WSTAW [asdf] ( [inttest] , [tekst] , [varcharmax] ) WARTOŚCI ( 1 , '1111111' , '1111111' )



STARTUJ IDENTITY_INSERT [ASDF]

Uruchom zapytanie:

Zapytanie 1:
WYBIERZ [tekst]

      ,[varcharmax]

Z [testDB]. [dbo]. [ASDF]

gdzie

[tekst] ='11111' I

[varcharmax] = '1111111'


Pojawia się następujący komunikat o błędzie:

Msg 402, poziom 16, stan 1, linia 1

Typy danych text i varchar nie są kompatybilne w operatorze równym z .

Pytanie 2:
WYBIERZ [tekst]

      ,[varcharmax]

Z [testDB]. [dbo]. [ASDF]

gdzie

[varcharmax] = '1111111'


może działać pomyślnie



W MS SQL2005 i wyższych dodaj duże typy danych (varchar(max), nvarchar(max), varbinary(max)). Typ danych o dużej wartości może przechowywać do 2^30-1 bajtu danych.

Te typy danych są zachowawczo identyczne z mniejszymi typami danych varchar, nvarchar i varbinary.

Microsoft chce zastąpić poprzednie typy danych tekstowych, ntextowych i obrazowych tym typem danych, a ich relacja jest następująca:

varchar(max)-------tekst;

nvarchar(max)-----ntext;

varbinary(max)----image.



W przypadku typów danych o dużej wartości praca z danymi o dużej wartości jest znacznie bardziej elastyczna niż wcześniej. Na przykład tekst nie może być używany "jak" wcześniej, ale po varchar(max) nie ma tych problemów, ponieważ varchar(max) jest taki sam jak varchar(n) pod względem zachowania, więc to, co można użyć w varcahr, można użyć na varchar(max).

Ponadto wspiera to stosowanie wyzwalaczy AFTER przy odniesieniach do kolumn o dużej wartości w tabelach wstawionych i usuniętych. tekst nie jest dobry, krótko mówiąc, po użyciu typu danych o dużej wartości mówię: "moja talia już nie boli, nogi mnie nie bolą i mogę wejść na szóste piętro jednym oddechem". Na co czekasz, użyj typu dużej wartości.






Poprzedni:Uh-huh, eh-huh, eh-huh
Następny:EF (Lambda expression) zapytuje kilka wyjątków napotkanych w danych
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com