SQLServer2005(その1)

最近、仕事でかなり久しぶりにSQLServerを使いました。
しかも「2005」。
その時に気付いたことをまとめておこうと思います。

  • 照合順序について


文字データの文字列の並べ替え方法および比較方法に関する規則を指定する。
サーバー、データベース、列、式、識別子の各レベルで設定が出来るが、最低でもデータベースレベルで行うべきだと思う。
SQLServerインストール時の「照合順序の設定」を変更しないと、サーバーレベルで「Japanese_CI_AS」という状態になる。
以降作成するデータベースには、このサーバーの照合順序が適応される。

□Japanese_CI_AS
・大文字と小文字の区別・・・しない
・かな(ひらがなとカタカナ)の区別・・・しない
・アクセント(濁音、半濁音と清音)の区別・・・する
・文字幅(全角と半角)の区別・・・しない
極端な例で言うと、「あ」と「ア」(半角)、「A」(全角)と「a」(半角)が同じものとして扱われる。

□Japanese_CS_AS_KS_WS
・大文字と小文字の区別・・・する
・かな(ひらがなとカタカナ)の区別・・・する
・アクセント(濁音、半濁音と清音)の区別・・・する
・文字幅(全角と半角)の区別・・・する

SQLServerインストール時の照合順序は「Japanese_CS_AS_KS_WS」にするべきだと思う。
この照合順序が許されない場合、データベース単位で変更する。

データベースの照合順序を変更する場合は、以下のSQL文を実行する。
ただし、今まで作られたオブジェクトには適応されないので、個別に対応が必要となる。
・ALTER DATABASE データベース名 COLLATE 照合順序(※)

※Japanese_に続く2文字のペアで、それぞれの照合順序の設定をしている。
1文字目が…
C … 大文字/小文字の区別
A … アクセントの区別
K … ひらがな/カタカナの区別
W … 全角/半角の区別
2文字目が…
S … する
I … しない
この2文字を省略した場合、対象の区別を行わない。

サーバーの照合順序を変更するのはかなり大変で、
1.すべてのユーザデータベースを削除する。
2.setup コマンドのSQLCOLLATIONプロパティで新しい照合順序を指定して、masterデータベースを再構築する。
・・・とかなり大変。。
詳細は「Books Online」を参照。

  • SQLServer2005で追加された機能で便利だと思ったもの。

例外処理
シノニム(別名)
・スナップショット分離レベルの設定

  • SQLServer2005に追加して欲しいもの。

・シーケンス(順序)
・パッケージ

  • SQLServer2005で削除された機能で復活して欲しいもの。

・isql

これらについてもちょっとずつまとめていこうと思います。
↓取りました。

MCP教科書 SQL Server 2005(試験番号:70-431)

MCP教科書 SQL Server 2005(試験番号:70-431)