创建一个表,其中UserPassword不等于UserName,但是下面的代码返回一个错误



SQL Server:

CREATE TABLE Credentials 
(
UserName VARCHAR(20) NOT NULL,
UserPassword VARCHAR(20) 
CONSTRAINT chk_constraint CHECK (UserPassword <> UserName) NOT NULL,
)

我得到这个错误:

列检查约束,列'UserPassword'引用另一个列,表(凭据)。

您只是想创建一个独立的检查约束,所以像这样修改它:

CREATE TABLE Credentials 
(
UserName VARCHAR(20) NOT NULL,
UserPassword VARCHAR(20) NOT NULL,
CONSTRAINT chk_constraint CHECK (UserPassword <> UserName)
)

您正在定义列级约束,

在列级约束中,只能为特定的列定义约束。

对于您的需求,您应该使用表级约束,从这里您可以为多个列定义约束,如:

CREATE TABLE Credentials 
(
UserName VARCHAR(20) NOT NULL,
UserPassword VARCHAR(20) NOT NULL,
CONSTRAINT chk_constraint CHECK (UserPassword <> UserName)
)

相关内容

  • 没有找到相关文章