Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разлика между различните типове низове в SQL Server?

text и ntext са отхвърлени, така че нека ги пропуснем за момент. За това, което остава, има 3 измерения:

  • Unicode (UCS-2) срещу не-unicode:N пред името означава Unicode
  • Фиксирана дължина срещу променлива дължина:var обозначава променлива, иначе фиксирана
  • В ред спрямо BLOB:(max) като дължина обозначава BLOB, в противен случай е стойност в ред

Така че с това можете да прочетете значението на всеки тип:

  • CHAR(10) :е в ред с фиксирана дължина не-Unicode с размер 10
  • NVARCHAR(256) :е Unicode с променлива дължина в ред с размер до 256
  • VARCHAR(MAX) :е BLOB с променлива дължина, не-Unicode

Отхвърлените типове text и ntext отговарят на новите типове varchar(max) и nvarchar(max) съответно.

Когато отидете на подробности, значението на in-row спрямо BLOB замъглява за малки дължини, както може двигателят оптимизирайте съхранението и изтеглете BLOB в ред или вкарайте стойност в ред в единицата за разпределение 'small BLOB', но това е само детайл на изпълнението. Вижте Организация на таблици и индекси .

От гледна точка на програмиране, всички типове:CHAR , VARCHAR , NCHAR , NVARCHAR , VARCHAR(MAX) и NVARCHAR(MAX) , поддържа API за унифициран низ:Функции за низове . Старият, отхвърлен тип TEXT и NTEXT не поддържат този API, те имат отделен, депериран, TEXT API за манипулиране. Не трябва да използвате отхвърлените типове.

BLOB типовете поддържат ефективни актуализации на място чрез използване на UPDATE table SET column.WRITE(@value, @offset) синтаксис.

Разликата между типовете с фиксирана дължина и типовете с променлива дължина изчезва при компресиране на редове в таблица. При активирана компресия на редове, типовете с фиксирана дължина и променливата дължина се съхраняват в един и същ формат и интервалите в края не се съхраняват на диска, вижте Внедряване на компресия на ред . Обърнете внимание, че компресирането на страници предполага компресиране на редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MDX брой във времето (години - не в рамките на една година)

  2. Свързване на вашето основно приложение на ASP.NET към локален екземпляр на SQLServer

  3. Вземете записите от миналия месец в SQL сървър

  4. Как да изтриете напълно дублиращи се редове

  5. C# SQLServer извлича резултати и ги поставя във формат .csv