欢迎来到忆约科技! 手机版

C# 社区推荐

当前位置:首页 > 编程专栏 > SQL Server > 正文

SQL Server 中使用有序 Guid 主键, 设置主键为有序 Guid

编辑时间:2020年09月02日 22:09 作者:E小编

在数据库或者代码中生成的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];

查询结果如下:

二维码