NVarchar também é um tipo de dados de caractere de comprimento variável que é usado para armazenar o formato de dados UniCode. Para formatos de dados Unicode, você pode pensar em alfabetos do idioma chinês, japonês, coreano e árabe.
O Varchar pode armazenar caracteres 'inglês' e leva um byte para armazenar cada caractere. Nvarchar pode armazenar caracteres em inglês e outros idiomas. NVarchar leva dois bytes para armazenar cada caractere.
Vamos criar duas variáveis e verificar o espaço usado por cada variável.
Declare @Variable1 VARCHAR(20) Declare @Variable2 NVARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
Qual é a diferença entre VARCHAR e NVARCHAR - Tutorial SQL Server
Como temos declarar @Variable2 como NVarchar, levou o dobro do espaço em comparação com @Variable1 que é Varchar para armazenar os caracteres.
Vamos criar uma tabela com colunas de tipo de dados Varchar e NVarchar e inserir algumas 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 no SQL Server - Tutorial TSQL
Nossa primeira consulta Select nos retornou os dados. Percebi que temos alguns dados lixo ????. Mesmo que tenhamos definido o tipo de dados da coluna NVarchar, ele inseriu o lixo. Para inserir dados Unicode na coluna do tipo Nvarchar, precisamos usar N com dados como você pode ver na segunda inserção (('عامر',N'عامر')).