默认约束不激活

时间:2018-03-18 19:10:47

标签: sql-server

在外键列上添加Default Constraint作为默认值,因此如果用户不提供值,则应插入默认值。但它不是触发约束,而是显示列名或提供的值数与表定义不匹配。

- 表 -

**

- tblGender -

create table tblperson(
    Id int not null, 
    Name nvarchar(50) not null, 
    Email nvarhcar(50) not null, 
    GenderId int
);

- 添加外键 -

Create Table tblGender(
    ID int Not Null Primary Key,
    Gender nvarchar(50)
);

- 默认约束 -

Alter table tblPerson 
add constraint tblPerson_GenderId_FK FOREIGN KEY (GenderId) references tblGender(ID)

- 插入声明 -

ALTER TABLE tblPerson
ADD CONSTRAINT DF_tblPerson_GenderId
DEFAULT 1 FOR GenderId

1 个答案:

答案 0 :(得分:0)

您的问题的答案是:

insert into tblperson(Id, Name, Email) values(1,'Jake','j@j.com');

大多数人忘了写列名,你应该总是关注列名和提供的数量。

顺便说一句,修正这一行中的拼写错误:

Email nvarhcar(50) not null,

它应该是:

Email nvarchar(50) not null,