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