私はこのようなSQLスクリプトを生成しました、
INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience])
VALUES (1, N'Dave', N'ESD157', N'FD080', 7)
ここでN 'が正確に何を意味し、その目的は何なのかと思います。
[〜#〜] note [〜#〜]:答えを検索すると、N 'が各国語標準のプレフィックスであり、Unicodeデータを使用するためのプレフィックスであることがわかります。しかし、正直なところ、ここでN 'の正確な操作について明確なアイデアを得ることができません。よろしくお願いしますわかりやすいのようにしてください。前もって感謝します。
N
は、Unicode文字列を指定するために使用されます。
ここに良い議論があります: なぜ一部のSQL文字列に 'N'プレフィックスがあるのですか?
この例では、ASCII文字(128未満の値))が直接Unicodeにマッピングされるため、N
接頭辞は必要ありません。ただし、=以外の名前を挿入したい場合ASCIIの場合、N
接頭辞が必要になります。
INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience])
VALUES (1, N'Wāhi', 'ESD157', 'FD080', 7)
"N"
接頭辞は、SQL-92標準の各国語を表し、Unicode文字を表すために使用されます。
UnicodeデータをSQL Serverに渡すときは常に、Unicode文字列の前にN
を付ける必要があります。
タイプがNVARCHAR
、NCHAR
またはNTEXT
の場合に使用されます。
詳細については、これを参照してください: なぜ一部のSQL文字列に 'N'プレフィックスがあるのですか?
_'abcd'
_は_[var]char
_文字列のリテラルです(またはtext
ですが、varchar(max)
の方が一般的です)-4バイトのメモリを占有し、コードを使用しますSQLサーバーが構成されているページ。 _N'abcd'
_は、_n[var]char
_文字列のリテラル(またはntext
ですが、nvarchar(max)
が望ましい)で、UTF-16を使用して8バイトのメモリを占有します。これにより、完全な国際的な使用が可能になり、率直に言って、_n[var]char
_はほとんどのシステムでおそらくデフォルトになるはずです。
これは、後続の文字列がUnicode
にあることを示します(Nは実際には各国語の文字セットを表します)。
つまり、NCHAR
、NVARCHAR
、またはNTEXT
ではなく、CHAR
、VARCHAR
、またはTEXT
の値を渡しているということです。
Nは、文字列型の値であることを指定します。
定数文字列です。 tsql_stringは、任意のnvarcharまたはvarcharデータ型にすることができます。 Nが含まれている場合、文字列はnvarcharデータ型として解釈されます。
各国には固有の文字と記号があるため、英語US用に設定されたデータベースは、英語UKデータベースが認識する£記号を認識しません。スペイン語、フランス語、ドイツ語についても同様です。
また、中国語、日本語、ヘブライ語、アラビア語などの他の言語では、ラテン文字は使用されません。
したがって、varcharを使用している場合、ローカル文字セットに含まれていないデータを入力しようとすると失敗するか、データが破損します。データベースが複数のローカル文字セットをサポートする必要がある可能性が最も低い場合でも、国別言語の文字セット(UnicodeまたはNChar)を使用する必要があります。これにより、文字セットで国籍を文字とともに記録できます。国際的なテキストサポートの提供
同様に、Nプレフィックスを文字列に追加すると、データベースに、国コードと文字コードを含めるように指示します