Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 11633|Отговор: 0

[Източник] Има разлика между типовете данни Text и varchar(max) в SQL Server

[Копирай линк]
Публикувано в 13.06.2018 г. 11:07:11 ч. | | |
Първо, varchar(max) е заместител на текстовия тип данни, използван от Microsoft,По-стари типове полета като текст могат да бъдат анулирани в следващите версии。 Така че какъв текст може да се запази, varchar (max) определено може да се запази. Всъщност броят на героите, които може да съхранява, е много голям. 420-те милиона знака, които могат да се съхранят, са трудни за достигане, което според мен е трудно да се достигне.

Знаех само предитекст и изображение са типове данни, които може да са остарели от SQL Server, но конкретната причина не е ясна, когато прочетох днес, открих разликата между текст и varchar(max) и nvarchar(max), главно заради ограничението на операторите, текстът може да се използва само от следните функции:
функцияТвърдение
ДЪЛЖИНА НА ДАННИREADTEXT
PATINDEXЗАДАЙТЕ РАЗМЕР НА ТЕКСТА
ПОДСТРИНГАКТУАЛЕН ТЕКСТ
TEXTPTRWRITETEXT
TEXTVALID


Например, ако типът данни в колоната "Текст" е текст, тогава той не може да се използва за операции като "=" и "left()", като следния пример:

Създайте таблица и попълнете данните:

ако съществува (изберете * от sysobjects, където id = OBJECT_ID('[asdf]') и OBJECTPROPERTY(id, 'IsUserTable') = 1)

ТАБЛИЦА ЗА ПУСКАНЕ [ASDF]

СЪЗДАЙ ТАБЛИЦА [asdf] (

[най-интелигентни] [инт] ИДЕНТИЧНОСТ (1, 1) НЕ НУЛЕВА ,

[текст] [текст] NULL,

[varcharmax] varchar(max) NULL )

ALTER TABLE [asdf] С NOCHECK ADD CONSTRAINT [PK_asdf] ПЪРВИЧЕН КЛЮЧ НЕКЛЪСТЕРИРАН ( [inttest] )



ВКЛЮЧИ IDENTITY_INSERT [asdf]



ВМЪКНЕТЕ [asdf] ( [inttest] , [текст] , [varcharmax] ) СТОЙНОСТИ ( 1 , '1111111' , '1111111' )



ИЗКЛЮЧИ IDENTITY_INSERT [ASDF]

Изпълнете заявката:

Запитване 1:
SELECT [текст]

      ,[варчармакс]

ОТ [testDB]. [DBO]. [ASDF]

където

[текст] ='11111' И

[varcharmax] = '1111111'


Появява се следното съобщение за грешка:

Msg 402, ниво 16, щат 1, линия 1

Типовете данни text и varchar не са съвместими по отношение на оператора equal to a.

Запитване 2:
SELECT [текст]

      ,[варчармакс]

ОТ [testDB]. [DBO]. [ASDF]

където

[varcharmax] = '1111111'


може да работи успешно



В MS SQL2005 и по-горе добавете големи стойностни типове данни (varchar(max), nvarchar(max), varbinary(max)). Типът данни с голяма стойност може да съхранява до 2^30-1 байта данни.

Тези типове данни са поведенчески идентични с по-малките типове данни varchar, nvarchar и varbinary.

Твърдението на Microsoft е да замени предишните типове текстови, ntext и изображения с този тип данни, а съответствието между тях е:

varchar(max)-------текст;

nvarchar(max)-----ntext;

varbinary(max)----образ.



При типове данни с големи стойности е много по-гъвкаво да се работи с данни с голяма стойност, отколкото преди. Например, текстът не може да се използва "подобно" преди, но след varchar(max) няма такива проблеми, защото varchar(max) е същото като varchar(n) по поведение, така че това, което може да се използва във varcahr, може да се използва и върху varchar(max).

Освен това това поддържа използването на AFTER тригери при препратки към колони с големи стойности в вмъкнати и изтрити таблици. Текстът не е добър, накратко, след като използвам типа с големи стойности, казвам "вече не ме боли талията, краката не ме болят и мога да стигна до шестия етаж с един дъх". Какво чакате, използвайте типа с голяма стойност.






Предишен:Аха, аха, аха, аха.
Следващ:EF (Lambda израз) прави запитвания за няколко изключения, срещани в данните
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com