是否可以在SQL中使用等式约束?

时间:2013-11-04 18:30:25

标签: sql sql-server check-constraints

我有以下内容:

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)
);

我可以设置约束以使电子邮件和用户名等于吗?

谢谢你, 米格尔

2 个答案:

答案 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)