NVarchar to również typ danych znaków o zmiennej długości, który jest używany do przechowywania danych w formacie UniCode. W przypadku formatów danych Unicode można pomyśleć o alfabetach języka chińskiego, japońskiego, koreańskiego i arabskiego.
Varchar może przechowywać znaki „angielskie” i każdy znak zajmuje jeden bajt. Nvarchar może przechowywać znaki angielskie i inne języki. NVarchar zajmuje dwa bajty do przechowywania każdego znaku.
Utwórzmy dwie zmienne i sprawdźmy miejsce używane przez każdą zmienną.
Zadeklaruj @Variable1 VARCHAR(20)Zadeklaruj @ Variable2 NVARCHAR(20)SET @Variable1='TechBrothersIT'SET @Variable2='TechBrothersIT'Wybierz długość danych(@Variable1) jako VarLength1, datalength(@Variable2) jako VarLength2
Jaka jest różnica między VARCHAR i NVARCHAR - samouczek SQL Server
Tak jak mamy zadeklaruj @Variable2 jako NVarchar, zajęło to dwa razy więcej miejsca w porównaniu do @Variable1, która jest Varchar do przechowywania znaków.
Utwórzmy tabelę z kolumnami Varchar i NVarchar i wstaw kilka records.
Utwórz tabelę dbo.VarcharVsNvarchar( VarcharName Varchar(50),NVarcharName NVARCHAR(50))wstaw do dbo.VarcharVsNvarchar Values('عامر','عامر'),('عامر ',N'عامر'),('TechBrothersIT',N'TechBrothersIT')Wybierz * z dbo.VarcharVsNvarchargoSelect DataLength(VarcharName) AS CHARNameLength,DataLength(NVarcharName) AS VarNameLength Z dbo.NvarcharVarchar
Varchar VS Nvarchar w SQL Server — samouczek TSQL
Zwróciło nam nasze pierwsze zapytanie Select dane. Zauważyłem, że mamy jakieś śmieciowe dane ????. Nawet my zdefiniowaliśmy typ danych kolumny NVarchar, wstawiliśmy śmieci. Aby wstawić dane Unicode w kolumnie typu Nvarchar, musimy użyć N z danymi, jak widać w drugiej wstawce ( ('عامر',N'عامر')).