在数据库或者代码中生成的Guid是无序的,看起来杂乱无章,SQL Server 中可以利用数据库自身生成有序Guid
有序Guid数据格式如下:
3E53CAB4-24ED-EA11-9983-6C0B84E21E0E
3F53CAB4-24ED-EA11-9983-6C0B84E21E0E
4053CAB4-24ED-EA11-9983-6C0B84E21E0E
4153CAB4-24ED-EA11-9983-6C0B84E21E0E
4253CAB4-24ED-EA11-9983-6C0B84E21E0E
4353CAB4-24ED-EA11-9983-6C0B84E21E0E
4453CAB4-24ED-EA11-9983-6C0B84E21E0E
4553CAB4-24ED-EA11-9983-6C0B84E21E0E
4653CAB4-24ED-EA11-9983-6C0B84E21E0E
4753CAB4-24ED-EA11-9983-6C0B84E21E0E
4853CAB4-24ED-EA11-9983-6C0B84E21E0E
4953CAB4-24ED-EA11-9983-6C0B84E21E0E
4A53CAB4-24ED-EA11-9983-6C0B84E21E0E
4B53CAB4-24ED-EA11-9983-6C0B84E21E0E
4C53CAB4-24ED-EA11-9983-6C0B84E21E0E
4D53CAB4-24ED-EA11-9983-6C0B84E21E0E
4E53CAB4-24ED-EA11-9983-6C0B84E21E0E
在数据库中执行SQL代码,查看测试结果
USE master; GO --创建数据库 IF NOT EXISTS(SELECT * FROM dbo.sysdatabases WHERE [name]='TestDB') CREATE DATABASE TestDB; GO --使用数据库 USE TestDB; GO --TestGuid:测试表 IF EXISTS(SELECT * FROM sysobjects WHERE [name]='TestGuid') DROP TABLE [TestGuid] GO CREATE TABLE [TestGuid]( [Id] [uniqueidentifier] NOT NULL DEFAULT NEWSEQUENTIALID(),--主键 [Name] [nvarchar](50),--名称 PRIMARY KEY([Id]) ); GO --插入测试数据 DECLARE @i [int]; SET @i=0 WHILE @i< 50 BEGIN INSERT INTO [TestGuid]([Name]) VALUES (@i); SET @i=@i+1; END GO --查询结果 SELECT * FROM [TestGuid];
查询结果如下: