中国語の文字をサポートするために、データベーステーブルの列のデータ型をvarchar
からnvarchar
に変更する必要があります(現在、これらの文字を持つvarchar
フィールドは疑問符のみを表示しています)。
値を変更する方法は知っていますが、変更しても安全かどうかを確認したいと思います。変更を行う前に注意すべき点はありますか?ありがとう!
この変更はデータサイズの更新であることに注意してください。 フードの下のSQL Serverテーブル列 を参照してください。この変更により、新しいNVARCHAR列が追加され、古いVARCHARから新しいNVARCHAR列にdtaをコピーして各行が更新され、古いVARCHAR列がドロップされたものとしてマークされます。テーブルが大きい場合、これにより大きなログが生成されるため、そのために準備してください。更新後、 DBCC CLEANTABLE
は、以前のVARCHAR列で使用されていたスペースを再利用します。余裕があれば、ALTER TABLE ... REBUILD
は、スペースを再利用するだけでなく、物理的に削除されたVARCHAR列も完全に削除します。最初のリンクされた記事に詳細があります。
また、テーブルで nicode Compression を有効にすることもできます。
主キー以外のフィールドで実行できます。
ALTER TABLE [TableName]
ALTER COLUMN [ColumnName] nvarchar(N) null
主キーフィールドでは機能しません-テーブルを再作成する必要があります
VARCHARの最大値は8000で、NVARCHARは4Kだけなので、長さが4000を超えないようにしてください。
テーブルが大きくなります。列の各文字は、保存に2倍のスペースを必要とします。テーブルが本当に大きくない限り気付かないかもしれません。
列データを処理するストアドプロシージャ/ビュー/クエリは、nvarcharを処理するために変更する必要がある場合があります。
ストアドプロシージャ、関数、このテーブルに基づく一時テーブル、および挿入/更新などに使用される変数もNVARCHARに更新する必要があるため、このテーブルのすべての依存関係を確認してください。また、テーブルが複製されているかどうかを確認してください!それはあなたに新しい問題を引き起こす可能性があります!