Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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


Наприклад, якщо тип даних стовпця «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 (лямбда-вираз) запитує кілька винятків, що зустрічаються в даних
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com