Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la différence entre VARCHAR et NVARCHAR dans SQL Server - Tutoriel SQL Server / T-SQL Partie 32

Varchar est un type de données de caractères de longueur variable qui est utilisé pour stocker le format de données non Unicode. Vous pouvez considérer les non-Unicode comme des caractères anglais.

NVarchar est également un type de données de caractères de longueur variable qui est utilisé pour stocker le format de données UniCode. Pour les formats de données Unicode, vous pouvez penser aux alphabets chinois, japonais, coréen et arabe.

Varchar peut stocker des caractères "anglais" et il faut un octet pour stocker chaque caractère. Nvarchar peut stocker des caractères anglais et d'autres langues. NVarchar prend deux octets pour stocker chaque caractère.

Créons deux variables et vérifions l'espace utilisé par chaque variable.

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

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

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

Quelle est la différence entre VARCHAR et NVARCHAR - Tutoriel SQL Server

Comme nous l'avons déclarons @Variable2 comme NVarchar, il a fallu deux fois plus d'espace par rapport à @Variable1 qui est Varchar pour stocker les caractères.


Créons une table avec des colonnes de type Varchar et NVarchar Data et insérons quelques records.

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 dans SQL Server - Tutoriel TSQL

Notre première requête Select nous a renvoyé les données. Remarqué que nous avons des données de déchets ????. Même si nous avons défini le type de données de la colonne NVarchar, il a inséré la poubelle. Pour insérer des données Unicode dans la colonne de type Nvarchar, nous devons utiliser N avec les données comme vous pouvez le voir dans la deuxième insertion (('عامر',N'عامر')).