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

По-перше, varchar(max) є заміною текстового типу даних, який використовує Microsoft,Старі типи полів, такі як текст, можуть бути скасовані у наступних версіях。 Отже, який текст можна зберегти, варчар (максимум) точно можна зберегти. Насправді, кількість символів, які він може зберігати, дуже велика. 420 мільйонів символів, які можна зберегти, важко дістатися, і, на мою думку, це важко.
Раніше я знав лишеТекст і зображення — це типи даних, які можуть стати застарілими SQL Server, але конкретна причина не зовсім зрозуміла, коли я сьогодні читав, я знайшов різницю між текстом і varchar(max) і nvarchar(max), головним чином через обмеження операторів, текст може використовуватися лише такими функціями:
| функція | Твердження | | ДОВЖИНА ДАНИХ | READTEXT | | PATINDEX | ВСТАНОВИТИ РОЗМІР ТЕКСТУ | | ПІДРЯДОК | UPDATETEXT | | TEXTPTR | WRITETEXT | | TEXTVALID | |
Наприклад, якщо тип даних стовпця «Text» — це текст, то його не можна використовувати для операцій, таких як «=» та «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 не сумісні з оператором, рівним операторам.
Запит 2: SELECT [текст]
,[Варчармакс]
З [testDB]. [DBO]. [ASDF]
де
[varcharmax] = '1111111'
може успішно працювати
У MS SQL2005 та вище додайте великі типи даних (varchar(max), nvarchar(max), varbinary(max)). Тип даних з великим значенням може зберігати до 2^30-1 байта даних.
Ці типи даних поведінково ідентичні меншим типам даних варчар, нварчар і варбінарний.
Microsoft заявляє про заміну попередніх типів даних тексту, ntext та зображень на цей тип даних, і відповідність між ними така:
varchar(max)-------текст;
nvarchar(max)-----ntext;
варбінар(макс)----образ.
З великими типами даних значно гнучкіше працювати з великими даними, ніж раніше. Наприклад, текст не можна використовувати «подібно» до використання, але після varchar(max) цих проблем немає, оскільки varchar(max) за поведінкою збігається з varchar(n), тож те, що можна використати у varcahr, можна застосовувати до varchar(max).
Крім того, це підтримує використання тригерів AFTER для посилань на стовпці типів великих значень у вставлених і видалених таблицях. Текст — це погано, коротко кажучи, після використання типу даних з великими значеннями я думаю: «Моя талія більше не болить, ноги не болять, і я можу піднятися на шостий поверх одним подихом». Чого ви чекаєте — використовуйте тип з великим значенням.
|
Попередній:Ага, ага, агаНаступний:EF (лямбда-вираз) запитує кілька винятків, що зустрічаються в даних
|