1

ユニコードではなく 8 ビット文字 (nvarchar ではなく varchar) を使用してテキストを格納する SQL Server のいくつかのテーブルを使用しています。一定量のテキストには、ASCII 範囲外の値を持つ文字が含まれています。たとえば、中引用符、全角ダッシュ、および ñ などの国際文字です。すべての PC とサーバーが同じコード ページを使用しているため、おそらくこれが機能します。

ただし、SSMS で [タスク] > [スクリプトの生成] スクリプト ツールを使用してこのようなテーブルのスクリプトを作成すると、結果のスクリプトは特殊文字を変換し、スクリプトを使用してテーブルを再構築すると、特殊文字が破損します。たとえば、「カニョン」は「カニオン」になります。これは、スクリプトに含まれる INSERT ステートメントで確認できます。データベースの「cañon」は、INSERT ステートメントでは「ca±on」と表示されます。

SSMS で、ラウンドトリップが機能するように、ASCII 範囲外の varchar データを含むテーブルをスクリプト化するにはどうすればよいですか?

4

1 に答える 1

0

スクリプト ウィザードの出力オプションでは、拡張 ASCII データを CHAR および VARCHAR フィールドに正しくスクリプト化する場合は、ANSI テキストとして保存する必要があります。

于 2012-03-06T18:13:18.417 に答える