Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 11633|Ответ: 0

[Источник] Существует разница между типами данных Text и varchar(max) в SQL Server

[Скопировать ссылку]
Опубликовано 13.06.2018 11:07:11 | | |
Во-первых, varchar(max) заменяет тип текстовых данных, используемый Microsoft,Старые типы полей, такие как текст, могут быть отменены в последующих версиях。 Итак, какой текст можно сохранить, варчар (максимум) точно можно сохранить. На самом деле, количество символов, которые он может хранить, очень велико. 420 миллионов символов, которые можно сохранить, найти сложно, и, как мне кажется, это сложно.

Я знал только раньшетекст и изображение — это типы данных, которые могут стать устаревшими SQL Server, но конкретная причина неясна: когда я сегодня читал, я обнаружил разницу между текстом и varchar(max) и nvarchar(max), главным образом из-за ограничения операторов, текст можно использовать только по следующим функциям:
функцияУтверждение
ДЛИНА ДАННЫХREADTEXT
PATINDEXУСТАНОВИТЬ РАЗМЕР ТЕКСТА
ПОДСТРОКАUPDATETEXT
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'


Появляется следующее сообщение об ошибке:

Сообщение 402, уровень 16, штат 1, линия 1

Типы данных text и varchar несовместимы с оператором equal to.

Запрос 2:
SELECT [текст]

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

ИЗ [testDB]. [DBO]. [ASDF]

где

[varcharmax] = '1111111'


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



В MS SQL2005 и выше добавляйте крупные типы данных (varchar(max), nvarchar(max), varbinary(max)). Тип данных с большим значением может хранить до 2^30-1 байта данных.

Эти типы данных поведенчески идентичны меньшим типам данных варчар, нварчар и варбинарный.

Microsoft утверждает, что заменяет предыдущие типы данных текста, ntext и изображений на этот тип, и соответствие между ними такова:

варчар(макс)-------текст;

nvarchar(max)-----ntext;

varbinary(max)----image.



С большими типами данных гораздо гибче работать с данными больших значений, чем раньше. Например, текст нельзя использовать «like» до, но после varchar(max) таких проблем нет, потому что varchar(max) по поведению совпадает с varchar(n), поэтому то, что можно использовать в varcahr, можно использовать и на varchar(max).

Кроме того, это поддерживает использование триггеров AFTER для ссылок на столбцы с большими значениями в вставленных и удалённых таблицах. Текст — это плохо, короче говоря, после использования типа данных с большим значением я понимаю: «У меня больше не болит талия, ноги не болят, и я могу подняться на шестой этаж за один вдох». Чего ждёте, используйте тип с большой ценой.






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

Mail To:help@itsvse.com