微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio 2019 - SQL dacpac - 违反 UNIQUE KEY 约束......重复的键值为 (<NULL>)

如何解决Visual Studio 2019 - SQL dacpac - 违反 UNIQUE KEY 约束......重复的键值为 (<NULL>)

我在 Visual Studio 中使用了一个数据库项目

我试图通过允许 UNIQUE NULLABLES 来消除该错误,但它一直出现

我希望字段具有唯一值,除非它们为空

(我知道有很多答案,但它们与创建表查询无关)

我做错了什么?

CREATE TABLE [dbo].[users] ( 
    [Id] INT IDENTITY (1,1)  NOT NULL PRIMARY KEY,[Email]          VARCHAR (100) UNIQUE NONCLUSTERED NULL DEFAULT NULL,[Login]          VARCHAR (100) UNIQUE NONCLUSTERED NULL DEFAULT NULL,[Identifier] VARCHAR(40) NOT NULL UNIQUE DEFAULT newid(),[ResetPasswordToken] VARCHAR(40) UNIQUE NONCLUSTERED NULL DEFAULT   NULL,[ResetPasswordDate]DATETIME UNIQUE NONCLUSTERED NULL DEFAULT   NULL,...(other fields)
);

感谢您对此的帮助

解决方法

答案是关于使用“GO”这个词

GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_User_Email] ON [dbo].[Users]([Email] ASC) WHERE ([Email] IS NOT NULL);

GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_User_Login] ON [dbo].[Users]([Login] ASC) WHERE ([Login] IS NOT NULL);

GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_User_ResetPasswordToken] ON [dbo].[Users]([ResetPasswordToken] ASC) WHERE ([ResetPasswordToken] IS NOT NULL);

GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_User_ResetPasswordDate] ON [dbo].[Users]([ResetPasswordDate] ASC) WHERE ([ResetPasswordDate] IS NOT NULL);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。