Microsoftは12月18日(米国時間)、「Introducing UTF-8 support in SQL Server 2019 preview - SQL Server Blog」において、SQL Server 2019のプレビュー版でUTF-8のサポートが追加されていると伝えた。

これにより、インポートエンコーディング、エクスポートエンコーディング、データベースレベルの文字列データ照合順序、カラムレベルの文字列データ照合順序としてUTF-8がそのまま利用できることになる。

MicrosoftはSQL Server 2019がUTF-8に対応したことで、グローバルに展開する必要がある既存のアプリケーションにおいて、移行にかかる開発の手間を削減できると説明している。

  • Microsoft Corporation

    Microsoft Corporation

ローカル向けのシステムからグローバルで利用するシステムに移行する際の作業量を削減するために、既存のデータ型であるCHARおよびVARCHARではUTF-8が有効化されている。文字列データに関しては照合順序指定にUTF8のサフィックスを追加することで文字列の生成時や変更時に自動的にUTF-8へエンコードが変更されると説明がある。

例えば、照合順序としてLATIN1_GENERAL_100_CI_AS_SCを使っている場合は、LATIN1_GENERAL_100_CI_AS_SC_UTF8に変更することでその処理が行われるようになる。なお、NCHARおよびNVARCHARに関する動作はこれまでと同じでUTF-16のみが指定できる。

また、もし主要なデータセットにLatin系文字を使っているようなケースでは、UTF-8へ利用を切り替えることで大幅なストレージ消費量の削減が期待できるとしている。例えば、既存のカラムデータ型をNCHAR(10)からUTF-8が有効になったCHAR(10)に変更した場合、ストレージ容量は50%ほど削減されるという。その理由について、NCHAR(10)は22バイトを消費するが、CHAR(10)は12バイトしか消費しないからと説明している。