SQL Server GUID

Sql Server Guid



この投稿では、SQL Server で uniqueidentifier 型を使用する方法を学習します。また、NEWID() および NEWSEQUENTIALID() 関数を使用して GUID 値を生成します。

SQL Server の一意の識別子の種類

これは、列またはローカル変数で使用される 16 バイトの GUID 値です。 NEWID() および NEWSEQUENTIALID() 関数を使用して、uniqueidentifier 型の値を作成できます。

また、xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx の形式で文字列値を変換することによって、GUID 値を生成することもできます。ここで、x は 0 ~ 9 の範囲の 16 進数です。







GUID 値の「ランダム性」により、GUID 値がデータベースまたはサーバー全体で一意であることが保証されます。これは、特定の値を一意に識別するための優れたデータ型になります。



SQL Server NEWID() 関数

NEWID() 関数を使用すると、uniqueidentifier 型の新しい一意の値を生成できます。構文は次のとおりです。



変化する ( )

例えば:





@gid 一意の識別子を宣言します。
@gid = CHANGE() を設定します。
@gid を gid として選択します。

上記のステートメントは、GUID 値を次のように返す必要があります。

ギッド
873412E2-A926-4EAB-B99F-A1E47E727355

SQL Server NEWSEQUENTIALID() 関数

この関数を使用すると、一意の GUID 値を順番に生成できます。これは、以前に生成された GUID よりも大きい GUID 値を生成することによって機能します。



これは、NEWID() 関数を使用して次の GUID 値を手動で決定するのではなく、値を順次生成するため、行識別子として使用するのに役立ちます。

関数の構文は次のとおりです。

NEWSEQUENTIALID ( )

SQL Server GUID を行識別子として使用する

次の例は、newsequentialid() 関数を特定の列の行識別子として使用する方法を示しています。

テーブルエントリを作成します(
id uniqueidentifier は null ではありません。デフォルトは newsequentialid() 主キーです。
server_name varchar(50),
server_address varchar(255) NULL 以外、
compression_method varchar(100) デフォルト 'なし',
size_on_disk float が null ではない、
size_compressed フロート、
total_records int が null ではない、
init_date 日付
);
入れる
の中へ
ENTRIES(server_name,
サーバーアドレス、
圧縮方法、
size_on_disk,
size_compressed、
total_records、
init_date)

('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

上記の例では、ID 列を uniqueidentifier タイプとして設定し、デフォルト値を newsequentialid() 関数によって生成された値として設定しています。

結果のテーブルは次のとおりです。

エントリから * を選択します。

出力:

GUID 値を使用すると厳密な一意性が得られますが、特定の値をデバッグまたは選択する場合は困難な場合があります。

結論

このガイドでは、SQL Server の uniqueidentifier 型について学習しました。また、NEWID() および NEWSEQUENTIALID() 関数を使用して GUID 値を生成する方法も学習しました。