Char tiene un ancho fijo, lo que significa que el tamaño de almacenamiento del valor de char es igual al tamaño máximo de la columna/Variable.
Varchar es de longitud variable. El tamaño de almacenamiento utilizado por Varchar depende de los caracteres reales guardados.
Ejemplo 1:
Vamos a crear un par de variables y luego guardar la misma cadena y comprobar el almacenamiento utilizado por la función de longitud de datos en SQL Server.Declare @Variable1 CHAR(20) Declare @Variable2 VARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
¿Cuál es la diferencia entre CHAR y VARCHAR en SQL Server? Tutorial de T-SQL
Como pueda ver arriba, Char ocupó 20 bytes de espacio para 20 caracteres, incluso guardamos solo 14 caracteres. Por otro lado, Varchar usó solo 14 bytes para almacenar 14 caracteres.
Ejemplos 2:
Vamos a crear una tabla con dos columnas, una char y otra tipo de datos varchat. Almacene la misma información y luego verifique el espacio ocupado por cada valor usando la función de longitud de datos.Create table dbo.CharVsVarChar( CHARName CHAR(50),VARName VARCHAR(50)) insert into dbo.CharVsVarChar
Values ('Aamir','Aamir'), ('TechBrothersIT','TechBrothersIT') ,('Raza','Raza') go
Select DataLength(CharName) AS CHARNameLength,DataLength(VarName) AS VarNameLength From dbo.CharVsVarChar
Char vs Varchar en SQL Server - Tutorial de SQL Server/T-SQL
Podemos ver que Char siempre ocupa el mismo espacio independientemente del número o caracteres guardados. Por otro lado, el espacio ocupado por Varchar varía según la cantidad de caracteres guardados.
En los casos en los que sabemos que vamos a almacenar una cantidad fija de caracteres, podemos usar Char; de lo contrario, use Varchar.