SQLServerでシステム内でユニークな値を生成するNEWID()の利用方法
SQLServerでシステム内でユニークな値を利用したい時があります。
そのような時に便利に使えるのがNEWID()です。
UNIQUEIDENTIFIER型の一意な値を作成するNEWID()
NEWID()はUNIQUEIDENTIFIER型の一意な値を作成する関数です。
NEWID()を利用することで、サロゲートキーを簡単に生成することができます。
--テーブルを準備する CREATE TABLE 顧客管理テーブル ( 名前 VARCHAR(50) ,所属会社 VARCHAR(50) ,部署 VARCHAR(50) ,サロゲートキー UNIQUEIDENTIFIER DEFAULT NEWID() ) --データを準備する INSERT INTO 顧客管理テーブル VALUES ( 'トラスト1号', 'システムトラスト', '技術部', NEWID()) INSERT INTO 顧客管理テーブル VALUES ( 'トラスト2号', 'システムトラスト', '営業部', NEWID()) INSERT INTO 顧客管理テーブル VALUES ( 'トラスト3号', 'システムトラスト', '技術部', NEWID()) INSERT INTO 顧客管理テーブル VALUES ( 'トラスト4号', 'システムトラスト', '総務部', NEWID()) INSERT INTO 顧客管理テーブル VALUES ( 'トラスト5号', 'システムトラスト', '技術部', NEWID()) --テーブルを検索する SELECT 名前 ,所属会社 ,部署 ,キー FROM 顧客管理テーブル ORDER BY 所属会社 ,部署 ,名前 --テーブルを削除する DROP TABLE 顧客管理テーブル
実行結果は以下の通りです。
名前 | 所属会社 | 部署 | サロゲートキー |
---|---|---|---|
トラスト2号 | システムトラスト | 営業部 | B3936363-2C09-4033-BE77-0DCF29B12671 |
トラスト1号 | システムトラスト | 技術部 | F2F79653-5EA3-4760-8F50-43B8DDA4ED07 |
トラスト3号 | システムトラスト | 技術部 | DB1DD111-FABC-4AA9-B88E-878FDAB167E5 |
トラスト5号 | システムトラスト | 技術部 | 65AE3E67-BF2A-4AC2-B0D9-0EDD5789D525 |
トラスト4号 | システムトラスト | 総務部 | 9A27DED2-3E3E-47A5-B016-2C1A40A3E184 |
サロゲートキーにランダムでユニークな値が設定されています・
参考
NEWID()はRFC4122に準拠しています。
RFC4122についてはこちらを参照しててください。
以上、SQLServerでシステム内でユニークな値を生成するNEWID()の利用方法でした。