sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la diferencia entre VARCHAR y NVARCHAR en el servidor SQL - SQL Server / Tutorial T-SQL Parte 32

Varchar es un tipo de datos de caracteres de longitud variable que se utiliza para almacenar formatos de datos que no son Unicode. Puede pensar en Non-Unicode como caracteres en inglés.

NVarchar también es un tipo de datos de caracteres de longitud variable que se utiliza para almacenar el formato de datos UniCode. Para formatos de datos Unicode, puede pensar en alfabetos de chino, japonés, coreano y árabe.

Varchar puede almacenar caracteres 'ingleses' y se necesita un byte para almacenar cada carácter. Nvarchar puede almacenar caracteres en inglés y otros idiomas. NVarchar toma dos bytes para almacenar cada carácter.

Vamos a crear dos variables y verificar el espacio utilizado por cada variable.

Declare @Variable1 VARCHAR(20)
Declare @Variable2 NVARCHAR(20)

SET @Variable1='TechBrothersIT'
SET @Variable2='TechBrothersIT'

Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2

¿Cuál es la diferencia entre VARCHAR y NVARCHAR - Tutorial de SQL Server

Como tenemos declare @Variable2 como NVarchar, tomó el doble de espacio en comparación con @Variable1, que es Varchar para almacenar los caracteres.


Vamos a crear una tabla con columnas de tipo de datos Varchar y NVarchar e insertar algunas registros.

Create table dbo.VarcharVsNvarchar( VarcharName Varchar(50),NVarcharName NVARCHAR(50))
insert into dbo.VarcharVsNvarchar  Values
('عامر','عامر'),
('عامر',N'عامر'),
('TechBrothersIT',N'TechBrothersIT')

Select * from dbo.VarcharVsNvarchar
go
Select DataLength(VarcharName) AS CHARNameLength,DataLength(NVarcharName) AS VarNameLength 
From dbo.VarcharVsNvarchar

Varchar VS Nvarchar en SQL Server - Tutorial de TSQL

Nuestra primera consulta Select nos devolvió los datos. Notó que tenemos algunos datos basura ????. Incluso hemos definido el tipo de datos de la columna NVarchar, insertó la basura. Para insertar datos Unicode en la columna de tipo Nvarchar, necesitamos usar N con datos como puede ver en la segunda inserción (('عامر',N'عامر')).