SQL Server の sysname 型とは?
SQL Server の sysname 型とは?
sys.objects などのシステムカタログビューの定義を見ていると、列のデータ型が sysname となっていることがあります。
sysname 型はユーザー定義のテーブルにはほとんど使わない、あまり馴染みのないデータ型だと思います。
今回は、SQL Server の sysname 型とは何か?についてご紹介します。
sysname 型とは?
sysname 型は、SQL Server で使用できる特殊なデータ型のひとつで、データベースのオブジェクト名を格納するのに使われます。
機能的には sysname 型を使ってカラムを定義してみるとわかりますが、SQL Server 7.0 以降のバージョンでは nvarchar(128) NOT NULL と同じです。
1996 年のリリースなのでもう使われていないかもしれませんが、SQL Server 6.5 以前は varchar(30) と同等です。
ちなみに、SQL Server 2008 R2 以前はケースセンシティブのコレーションでは、sysname のキーワードは小文字でないと認識しませんでしたが、今は小文字でも大文字でも大丈夫です。
sysname 型はどんな時に使う?
では、sysname 型はどんな時に使うと良いでしょうか?
あまりユーザー定義のオブジェクトでは使う機会がないというのが正直なところですが、データベースのオブジェクト名を格納することがあって、この先 SQL Server のバージョンをアップグレードする可能性があるような時は sysname 型を使っておくと良いかもしれません。
そうしておけば、もしこの先のバージョンの SQL Server で sysname 型が nvarchar(256) NOT NULL などになっても、定義やスクリプト等を変更しなくてもそのまま使えますね。