SQL唯一标识符
我有一个名为SQL唯一标识符,sql,sql-server,entity-framework,tsql,uniqueidentifier,Sql,Sql Server,Entity Framework,Tsql,Uniqueidentifier,我有一个名为UserCredentials的表,它有一个uniqueidentifier列[UserCredentialId]。当我尝试创建一个新用户时,我在第一次尝试中得到00000000-0000-0000-0000-000000000000,然后当我尝试添加另一个用户时,它说PK不能重复。起初我很难猜出它是什么意思,但我想这是因为我的uniqueidentifier没有生成随机id 怎么办 编辑 以下是我的SQL表结构: CREATE TABLE [dbo].[UserCredential
UserCredentials
的表,它有一个uniqueidentifier
列[UserCredentialId]
。当我尝试创建一个新用户时,我在第一次尝试中得到00000000-0000-0000-0000-000000000000
,然后当我尝试添加另一个用户时,它说PK不能重复。起初我很难猜出它是什么意思,但我想这是因为我的uniqueidentifier
没有生成随机id
怎么办
编辑
以下是我的SQL表结构:
CREATE TABLE [dbo].[UserCredential](
[UserCredentialId] [uniqueidentifier] NOT NULL,
[UserRoleId] [int] NOT NULL,
[Username] [varchar](25) NOT NULL,
[Password] [varchar](50) NOT NULL,
[PasswordSalt] [varchar](max) NOT NULL,
[FirstName] [varchar](50) NOT NULL,
[LastName] [varchar](50) NOT NULL,
[PayorCode] [varchar](20) NOT NULL,
[ProviderCode] [varchar](50) NULL,
[CorporationCode] [varchar](50) NULL,
[Department] [varchar](50) NULL,
[Status] [varchar](1) NOT NULL,
[DateCreated] [datetime] NOT NULL,
[DateActivated] [datetime] NULL,
[Deactivated] [datetime] NULL,
[DateUpdated] [datetime] NULL,
[CreatedBy] [varchar](50) NOT NULL,
[UpdatedBy] [varchar](50) NOT NULL,
[EmailAddress] [varchar](50) NULL,
[ContactNumber] [int] NULL,
[Picture] [varbinary](max) NULL,
CONSTRAINT [PK_UserCredential_1] PRIMARY KEY CLUSTERED
(
[UserCredentialId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
我已经将其设置为(
newid()
),但仍然不起作用。将用户实例的Id设置为Guid.NewGuid()强>
user.Id = Guid.NewGuid();
将用户实例的Id设置为Guid.NewGuid()强>
user.Id = Guid.NewGuid();
将用户实例的Id设置为Guid.NewGuid()强>
user.Id = Guid.NewGuid();
将用户实例的Id设置为Guid.NewGuid()强>
user.Id = Guid.NewGuid();
在插入过程中,可以将表中的所有值默认为一个新值,就像标识一样 运行此命令可将所有插入的默认值设置为使用newid()
在插入过程中,可以将表中的所有值默认为一个新值,就像标识一样 运行此命令可将所有插入的默认值设置为使用newid()
在插入过程中,可以将表中的所有值默认为一个新值,就像标识一样 运行此命令可将所有插入的默认值设置为使用newid()
在插入过程中,可以将表中的所有值默认为一个新值,就像标识一样 运行此命令可将所有插入的默认值设置为使用newid()
将表定义更改为
[UserCredentialId] UNIQUEIDENTIFIER DEFAULT (NEWSEQUENTIALID()) NOT NULL
检查为什么在上更喜欢NEWSEQUENTIALID而不是newid
当GUID列用作行标识符时,使用NEWSEQUENTIALID可能比使用NEWID函数更快。这是因为NEWID函数会导致随机活动,并使用较少的缓存数据页。使用NEWSEQUENTIALID还有助于完全填充数据和索引页面
将表定义更改为
[UserCredentialId] UNIQUEIDENTIFIER DEFAULT (NEWSEQUENTIALID()) NOT NULL
检查为什么在上更喜欢NEWSEQUENTIALID而不是newid
当GUID列用作行标识符时,使用NEWSEQUENTIALID可能比使用NEWID函数更快。这是因为NEWID函数会导致随机活动,并使用较少的缓存数据页。使用NEWSEQUENTIALID还有助于完全填充数据和索引页面
将表定义更改为
[UserCredentialId] UNIQUEIDENTIFIER DEFAULT (NEWSEQUENTIALID()) NOT NULL
检查为什么在上更喜欢NEWSEQUENTIALID而不是newid
当GUID列用作行标识符时,使用NEWSEQUENTIALID可能比使用NEWID函数更快。这是因为NEWID函数会导致随机活动,并使用较少的缓存数据页。使用NEWSEQUENTIALID还有助于完全填充数据和索引页面
将表定义更改为
[UserCredentialId] UNIQUEIDENTIFIER DEFAULT (NEWSEQUENTIALID()) NOT NULL
检查为什么在上更喜欢NEWSEQUENTIALID而不是newid
当GUID列用作行标识符时,使用NEWSEQUENTIALID可能比使用NEWID函数更快。这是因为NEWID函数会导致随机活动,并使用较少的缓存数据页。使用NEWSEQUENTIALID还有助于完全填充数据和索引页面
你能发布你的SQL表脚本吗?我的意思是创建一个。你把什么设置成了
newid()
。没什么了。我想他在字段的字段属性列表中将DefaultValueForBinding设置为NEWID()。你能发布你的SQL表脚本吗?我的意思是创建一个。你将什么设置为NEWID()
?只是普通的NEWID()。没什么了。我想他在字段的字段属性列表中将DefaultValueForBinding设置为NEWID()。你能发布你的SQL表脚本吗?我的意思是创建一个。你将什么设置为NEWID()
?只是普通的NEWID()。没什么了。我想他在字段的字段属性列表中将DefaultValueForBinding设置为NEWID()。你能发布你的SQL表脚本吗?我的意思是创建一个。你将什么设置为NEWID()
?只是普通的NEWID()。没什么了。我想他在字段的字段属性列表中将DefaultValueForBinding设置为NEWID()。这和我建议的答案相同。Guid.NewGuid();我会提出同样的答案。Guid.NewGuid();我会提出同样的答案。Guid.NewGuid();我会提出同样的答案。Guid.NewGuid();