GUID とは
GUID (Globally Unique Identifier) は UUID とまったく同じ 128 ビットです。Microsoft は COM の時代から .NET、そして SQL Server に至るまでこの名称を使ってきたため、同社のドキュメントでは UUID より GUID のほうをよく見かけます。
このツールは大文字と波括弧をあらかじめ有効にしています。これは .NET の Guid.ToString() と SQL Server の NEWID() が返す形式です。両方を切れば標準的な UUID の表記になり、他の環境でもそのまま使えます。
使い方
- .NET や SQL Server に貼り付ける場合は大文字と波括弧をそのままにします。
- 標準の小文字 UUID が必要な場合は両方を切ります。
- 生成を押してコピーまたは保存します。
用途
- SQL Server の
uniqueidentifier列。 - .NET の
Guid型のフィールドや引数。 - Windows アプリケーションの構成キー。
- Active Directory のスキーマにおける ID。
GUID の位置づけ
| 選択肢 | 使う場面 |
|---|---|
GUID | Microsoft の呼び名と表記 |
v4 | 同じデータを小文字・括弧なしで表記します |
v7 | 時刻順の識別子。.NET 9 以降でも使えます |
UUID の各バージョン早見表
| バージョン | 並べ替え可能 | 基になる情報 | 向いている用途 |
|---|---|---|---|
| v1 | 不可 | タイムスタンプ + MAC アドレス | v1 に依存したままの既存システム |
| v3 | 不可 | 名前の MD5 ハッシュ | MD5 を使わざるを得ない場面の決定的な識別子 |
| v4 | 不可 | 122 ビットの乱数 | 一般的な識別子のほとんど |
| v5 | 不可 | 名前の SHA-1 ハッシュ | 同じ名前から常に同じ識別子を得たいとき |
| v6 | 可 | 並べ替えたタイムスタンプ | 乱数性を保ったまま並べ替えたいとき |
| v7 | 可 | ミリ秒精度の Unix 時刻 | データベースの主キーやイベント識別子 |
| v8 | 不可 | 独自のビット配置 | 独自形式や実験的な用途 |
7 つのバージョンはいずれも 128 ビットで、同じ 8-4-4-4-12 の形式で表記します。違うのはビットの意味だけです。
よくある質問
GUID と UUID は違うものですか?
データとしては同じで、どちらも 128 ビットです。違うのは表記と名称だけです。GUID は大文字で波括弧に囲むことが多くなっています。
なぜ GUID は大文字で書かれることが多いのですか?
.NET の Guid.ToString() が大文字を返し、SQL Server の NEWID() も同様だからです。Microsoft 系の慣習であり、技術的な要請ではありません。
SQL Server が生成する GUID はどの程度強いですか?
NEWID() はランダムな GUID を返し、v4 と同等です。乱数キーは書き込みが多いときにインデックスを断片化させるため、SQL Server には順序立った値を返す NEWSEQUENTIALID() もあります。