NVarchar è anche un tipo di dati di carattere a lunghezza variabile che viene utilizzato per memorizzare il formato di dati UniCode. Per i formati di dati Unicode puoi pensare ad alfabeti di lingua cinese, giapponese, coreana e araba.
Varchar può memorizzare caratteri "inglesi" e ci vuole un byte per memorizzare ogni carattere. Nvarchar può memorizzare caratteri inglesi e di altre lingue. NVarchar impiega due byte per memorizzare ogni carattere.
Creiamo due variabili e controlliamo lo spazio utilizzato da ciascuna variabile.
Declare @Variable1 VARCHAR(20) Declare @Variable2 NVARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
Qual è la differenza tra VARCHAR e NVARCHAR - Tutorial SQL Server
Come abbiamo dichiarare @Variable2 come NVarchar, ci è voluto il doppio dello spazio rispetto a @Variable1 che è Varchar per memorizzare i caratteri.
Creiamo una tabella con colonne di tipo dati Varchar e NVarchar e inseriamone alcune record.
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 in SQL Server - Tutorial TSQL
La nostra prima query Select ci ha restituito i dati. Ho notato che abbiamo alcuni dati spazzatura ????. Anche noi abbiamo definito il tipo di dati della colonna NVarchar, ha inserito la spazzatura. Per inserire i dati Unicode nella colonna del tipo Nvarchar, dobbiamo usare N con i dati come puoi vedere nel secondo inserto ( ('عامر',N'عامر')).