|
|
Опубликовано 13.06.2018 11:07:11
|
|
|

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