NVarchar er også datatype med variabel længde, som bruges til at gemme UniCode-dataformat. For Unicode-dataformater kan du tænke på alfabeter af kinesisk, japansk, koreansk og arabisk.
Varchar kan lagre 'engelske' tegn, og det tager en byte at gemme hvert tegn. Nvarchar kan gemme tegn på engelsk og andre sprog. NVarchar tager to bytes for at gemme hvert tegn.
Lad os oprette to variable og kontrollere pladsen, der bruges af hver variabel.
Declare @Variable1 VARCHAR(20) Declare @Variable2 NVARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
Hvad er forskellen mellem VARCHAR og NVARCHAR - SQL Server Tutorial
Som vi har erklærer @Variable2 som NVarchar, det tog dobbelt så meget plads sammenlignet med @Variable1, som er Varchar, at gemme tegnene.
Lad os oprette en tabel med Varchar og NVarchar Datatypekolonner og indsætte nogle 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
Varchar VS Nvarchar i SQL Server - TSQL Tutorial
Vores første udvalgte forespørgsel returnerede os dataene. Har bemærket, at vi har nogle affaldsdata ????. Selv vi har defineret datatypen for kolonne NVarchar, det indsatte skraldet. For at indsætte Unicode-data i kolonnen Nvarchar skal vi bruge N med data, som du kan se i anden indsættelse (('عامر',N'عامر')).