1. ホーム
  2. sql-server

[解決済み] varcharとnvarcharの違いは何ですか?

2022-03-20 01:32:42

質問

というだけなのでしょうか? nvarchar はマルチバイト文字に対応していますか?もしそうなら、ストレージの問題以外に、本当に varchars ?

解決方法は?

について nvarchar カラムは任意の Unicode データを格納することができます。A varchar カラムは、8ビットのコードページに制限されています。ある人は varchar を使用した方が、スペースを取らないからです。これは正解ではないと思っています。コードページの非互換性は苦痛であり、Unicodeはコードページの問題を解決するものです。ディスクやメモリが安価な現在、コードページで時間を浪費する理由はもうないのです。

最近のOSや開発プラットフォームは、すべて内部でUnicodeを使用しています。このため nvarchar ではなく varchar を使えば、データベースから読み込んだり、データベースに書き込んだりするたびにエンコーディングの変換を行う必要がなくなります。変換には時間がかかるし、エラーも起こりやすい。また、変換エラーからの復旧は自明な問題ではありません。

もし、ASCIIのみを使用するアプリケーションと連動するのであれば、やはりデータベースにはUnicodeを使用することをお勧めします。OSとデータベースの照合アルゴリズムは、Unicodeの方がうまく機能します。Unicode を使用することで、以下のような変換の問題を回避することができます。 その他 システムです。そして、将来に備えることになるのです。そして、完全なUnicodeストレージの利点を享受しながらも、維持しなければならないレガシーシステムのために、データが7ビットASCIIに制限されていることを常に検証することができるのです。