【SQL Server】文字コード(コードページ)の確認
概要
Nプレフィックスを付けない場合、どの文字コードで扱われるか分からなかったので、調べるのに使ったクエリなどを雑にメモします。 (ASCIIが使われている場合、漢字が正常に扱われないのではと疑問に思ったので)
ちなみに、自分の環境では「shift_jis」になっていました。
コードページの優先順位
カラムの定義 > テーブルの定義 > データベースの定義 > サーバの定義
照合順序の確認
code:カラムの照合順序の確認.sql
SELECT name, collation_name FROM sys.columns WHERE name = N'カラム名';
code:テーブルの照合順序の確認?.sql
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'テーブル名';
あっているか微妙
code:データベースの照合順序の確認?.sql
SELECT DATABASEPROPERTYEX('データベース名', 'Collation') AS DatabaseCollation;
code:サーバーの照合順序の確認.sql
SELECT SERVERPROPERTY('Collation') AS ServerCollation;
table:照合順序
Windows ロケール Windows LCID SQL LCID 既定の照合順序
日本語 (日本 XJIS) 0x0411 0x0411 Japanese_CI_AS
英語 (米国) 0x0409 0x0409 SQL_Latin1_General_CP1_CI_AS
文字コードの確認
code:文字コードの確認.sql
SELECT COLLATIONPROPERTY('照合順序の名前', 'CodePage');
table:コード ページ識別子
識別子 .NET 名 関連情報
932 shift_jis ANSI/OEM 日本語;日本語 (Shift-JIS)
1200 utf-16 Unicode UTF-16、リトル エンディアン バイト順 (ISO 10646 の BMP)。マネージド アプリケーションでのみ使用できる
20127 us-ascii US-ASCII (7 ビット)
20932 EUC-JP 日本語 (JIS 0208-1990 および 0212-1990)
65001 utf-8 Unicode (UTF-8)
参考記事