我有以下内容:
create table dbo.Users
(
Id int identity not null
constraint PK_Users_Id primary key clustered (Id),
Email nvarchar (120) not null
constraint UQ_Users_Email unique (Email),
Username nvarchar (120) not null
constraint UQ_Users_Username unique (Username)
);
我可以设置约束以使电子邮件和用户名等于吗?
谢谢你, 米格尔
答案 0 :(得分:3)
以下是直接解决问题的相应SQL:
create table dbo.Users
(
Id int identity not null
constraint PK_Users_Id primary key clustered (Id),
Email nvarchar (120) not null
constraint UQ_Users_Email unique (Email),
Username nvarchar (120) not null
constraint UQ_Users_Username unique (Username)
);
alter table dbo.Users add constraint CK_EmailEqualsUsername
check (username = email)
A,最常见的更好,更常见的方法是在调用堆栈中更高的位置执行比较(不同的层,例如:表示层/域层/服务层)
答案 1 :(得分:1)
试试这段代码:
alter table dbo.Users
add constraint ck_us check(Email=Username)