NVarcharは、UniCodeデータ形式を格納するために使用される可変長文字データ型でもあります。 Unicodeデータ形式の場合、中国語、日本語、韓国語、アラビア語のアルファベットを考えることができます。
Varcharは「英語」の文字を格納でき、各文字の格納には1バイトかかります。 Nvarcharは、英語およびその他の言語の文字を格納できます。 NVarcharは各文字を格納するのに2バイトかかります。
2つの変数を作成し、各変数が使用するスペースを確認しましょう。
Declare @Variable1 VARCHAR(20) Declare @Variable2 NVARCHAR(20) SET @Variable1='TechBrothersIT' SET @Variable2='TechBrothersIT' Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
VARCHARとNVARCHARの違いは何ですか-SQLServerチュートリアル
@ Variable2をNVarcharとして宣言すると、文字を格納するためにVarcharである@Variable1と比較して2倍のスペースが必要になります。
VarcharおよびNVarcharデータ型列を含むテーブルを作成し、いくつか挿入してみましょうレコード。
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
SQLServerのVarcharVSNvarchar-TSQLチュートリアル
最初のSelectクエリから返されましたデータ。ガベージデータがあることに気づきましたか????。列NVarcharのデータ型を定義しましたが、ガベージが挿入されました。 Nvarcharタイプの列にUnicodeデータを挿入するには、2番目の挿入(('عامر'、N'عامر'))でわかるように、データでNを使用する必要があります。