Char е с фиксирана ширина, което означава, че размерът за съхранение на стойността char е равен на максималния размер на колоната/ променлива.
Varchar е с променлива дължина. Размерът на хранилището, използвано от Varchar, зависи от действително запазените знаци.
Пример 1:
Нека създадем няколко променливи и след това да запазим същия низ и да проверим хранилището, използвано от функцията за дължина на данните в SQL Server.Деклариране @Variable1 CHAR(20)Деклариране @Variable2 VARCHAR(20)SET @ Variable1='TechBrothersIT'SET @Variable2='TechBrothersIT'Изберете дължина на данните(@Variable1) като VarLength1, дължина на данните(@Variable2) като VarLength2Каква е разликата между CHAR и VARCHAR в SQL Server - T-SQL урок
Както можете вижте по-горе, Char заема 20 байта място за 20 знака, дори ние спестихме само 14 знака. От друга страна, Varchar използва само 14 байта за съхраняване на 14 знака.
Примери 2:
Нека създадем таблица с две колони, веднъж char и друг тип данни varchat. Съхранявайте същата информация и след това проверете пространството, заето от всяка стойност, като използвате функцията за дължина на данните.Създайте таблица dbo.CharVsVarChar( CHARName CHAR(50),VARName VARCHAR(50))вмъкнете в dbo.CharVsVarChar предварително>Стойности('Aamir','Aamir'),('TechBrothersIT','TechBrothersIT'),('Raza','Raza')goИзберете DataLength(CharName) КАТО CHARNameLength,DataLength(VarName) AS VarNameLength от dbo.CharVsVarCharChar срещу Varchar в SQL Server - SQL Server / T-SQL урок Можем да видим, че символите винаги заемат едно и също място, независимо от записаното число или знаци. От друга страна, заетото пространство на Varchar варира в зависимост от броя на запазените знаци.
В случаите, когато знаем, че ще съхраняваме фиксиран брой знаци, можем да използваме Char, в противен случай използваме Varchar.