【SQL Server】照合順序を調べるためのSQLまとめ

【SQL Server】照合順序を調べるためのSQLまとめ

はじめに

コジマです。

照合順序とはなんぞやって人は以下の記事を見てください。
【SQL Server】照合順序をざっくりわかるようになる

SQL Serverで照合順序をい調べるために便利なSQLをまとめてみたのでよかったら使ってください。

使える照合順序の一覧を確認するSQL

SELECT name, description FROM sys.fn_helpcollations();  

データベースごとの照合順序の設定を確認するSQL

SELECT name, collation_name FROM sys.databases;  

テーブルごとの照合順序の設定を確認するSQL

SELECT
    s.name AS 'スキーマ名'
    , t.name AS 'テーブル名'
    , c.name AS 'カラム名'
    , c.collation_name AS '照合順序'
FROM sys.objects o
JOIN sys.schemas s
    ON o.schema_id = s.schema_id
JOIN sys.tables t
    ON o.object_id = t.object_id
JOIN sys.columns c
    ON o.object_id = c.object_id
WHERE c.collation_name IS NOT NULL
;

データベースに実際照合順序の設定が当たってることを確認するSQL

/* 大文字小文字が区別できていることの確認 */
WITH cs AS (
    SELECT 'A' as [value] UNION ALL
    SELECT 'a' as [value]
)
SELECT * FROM cs WHERE [value] = 'A'
;

/* アクセントが区別できていることの確認 */
WITH [as] AS (
    SELECT 'は' as [value] UNION ALL
    SELECT 'ば' as [value]
)
SELECT * FROM [as] WHERE [value] = 'は'
;

/* ひらがなカタカナの区別できていることの確認 */ 
WITH [ks] AS (
    SELECT 'は' as [value] UNION ALL
    SELECT 'ハ' as [value]
)
SELECT * FROM [ks] WHERE [value] = 'は'
;

/* 全角半角の区別できていることの確認 */ 
WITH [ws] AS (
    SELECT 'ア' as [value] UNION ALL
    SELECT 'ア' as [value]
)
SELECT * FROM [ws] WHERE [value] = 'ア'
;

さいごに

照合順序について調べる方法を調べてまとめてみました。
後半2つのSQLは自作です。

前半2つはここに載っています
https://docs.microsoft.com/ja-jp/sql/relational-databases/collations/view-collation-information?view=sql-server-ver15

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

SQLをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!

SQLはじめましての人!まずあなたの3時間をください。
この講座でまずこれだけは覚えてくれ!という内容をしっかり押さえることができます。
SQLはプログラミング言語がなんであれ、システム開発に必要になります。
この講座を見て最低限必要な知識を身に着けて実践で貢献できるようになりましょう!
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL

データベースの設計について学べる講座です。
設計について学べる教材は少ないので、実務でデータベースを触る人にはとてもうれしい講座です。

ちょっとニッチに感じるかもしれませんが、SQLのインデックスを学ぶことができる講座です。
よい性能でSQLを運用するためにはインデックスの理解は必要不可欠です。
CRUD書いて満足するエンジニアを出し抜きましょう。

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


SQLカテゴリの最新記事