如何在SQL Server中生成Guid?

如何在SQL Server中生成Guid?,sql,sql-server,Sql,Sql Server,我需要在SQL中创建一个Id作为Guid(无标识),我如何才能做到这一点?我将Id定义为uniqueidentifier,但在Db中保存的是00000000-0000-0000-0000-000000000000 SELECT NEWID() 希望帮助您手动创建aspnet角色 DECLARE @ID UNIQUEIDENTIFIER SET @ID = NEWID() DECLARE @STAMP UNIQUEIDENTIFIER SET @STAMP = NEWID() INSERT

我需要在SQL中创建一个Id作为Guid(无标识),我如何才能做到这一点?我将Id定义为uniqueidentifier,但在Db中保存的是00000000-0000-0000-0000-000000000000

SELECT NEWID()

希望帮助您手动创建aspnet角色

DECLARE @ID UNIQUEIDENTIFIER
SET @ID = NEWID()

DECLARE @STAMP UNIQUEIDENTIFIER
SET @STAMP = NEWID()

INSERT INTO [dbo].[AspNetRoles]
           ([Id]
           ,[Name]
           ,[NormalizedName]
           ,[ConcurrencyStamp])
     VALUES
           (@ID
           ,'Admin'
           ,'ADMIN'
           ,@STAMP)

什么是GUID?GUID是一种16字节的二进制SQL Server数据类型,在表、数据库和服务器中全局唯一。术语GUID表示全局唯一标识符,可与UNIQUEIDENTIFIER互换使用

要在SQL Server中创建GUID,请使用NEWID()函数,如下所示:

SELECT NEWID()
多次执行上述SQL行,每次都会看到不同的值。这是因为每当执行NEWID()函数时,它都会生成一个唯一的值

要声明GUID类型的变量,使用的关键字是UNIQUEIDENTIFIER,如以下脚本中所述:

DECLARE @UNI UNIQUEIDENTIFIER;
SET @UNI = NEWID(); 
SELECT @UNI;
如前所述,GUID值在表、数据库和服务器之间是唯一的。guid可以被视为全局主键。本地主键用于唯一标识表中的记录。另一方面,guid可用于跨表、数据库和服务器唯一标识记录

例如:

create table AspNetUsers
(
Id UNIQUEIDENTIFIER PRIMARY KEY default NEWID(),
Name nvarchar(200)
)

INSERT INTO AspNetUsers VALUES (default,'Shane')
INSERT INTO AspNetUsers VALUES (default,'Jonny')

select * from AspNetUsers