NVarchar är också teckendatatyp med variabel längd som används för att lagra UniCode-dataformat. För Unicode-dataformat kan du tänka på alfabet av kinesiska, japanska, koreanska och arabiska.
Varchar kan lagra "engelska" tecken och det tar en byte att lagra varje tecken. Nvarchar kan lagra tecken på engelska och andra språk. NVarchar tar två byte för att lagra varje tecken.
Låt oss skapa två variabler och kontrollera utrymmet som används av varje variabel.
Declare @Variable1 VARCHAR(20) Declare @Variable2 NVARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2

Som vi har deklarera @Variable2 som NVarchar, det tog dubbelt så mycket utrymme jämfört med @Variable1 som är Varchar för att lagra tecknen.
Låt oss skapa en tabell med Varchar och NVarchar Datatypkolumner och infoga några få poster.
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

Vår första Select-fråga gav oss uppgifterna. Märkte att vi har en del skräpdata ????. Även vi har definierat datatypen för kolumn NVarchar, den infogade skräpet. För att infoga Unicode-data i Nvarchar-typkolumnen måste vi använda N med data som du kan se i andra infogningen (('عامر',N'عامر')).