sql - Visual Studio 2019 - SQL dacpac - 违反 UNIQUE KEY 约束 ....重复键值为 ()
问题描述
我在 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);
推荐阅读
- python - 初始化和显示网格 - python
- javascript - 路由更改时重新渲染脚本
- visual-studio - Visual Studio 项目中的源文件列表
- c# - 发布时在服务器上更新连接字符串
- c# - Xamarin iOS 链接器问题
- python - 如果它们存在于另一个文本文件中,则从文本文件中删除它们
- java - TaskExecutor 不工作 Spring Integration
- html - CSS 问题:无法让 UL 元素不换行
- android - 如何将进度对话框设置为两者之间的最大值
- java - 获取 java.lang.IllegalStateException:无法在 Spring Batch 中执行 CommandLineRunner