SQL默认约束不适用于外键

时间:2019-02-08 21:56:05

标签: sql sql-server database

我在现有外键列上添加了默认约束,但是它不起作用。

我尝试在外键列上添加默认约束,但默认设置为其他值。该列设置为not null Int

ALTER TABLE [A] ADD  CONSTRAINT [default_value]  DEFAULT ((3)) FOR [ForeignKeyColumn]
GO

我尝试默认为3,但默认为0。

1 个答案:

答案 0 :(得分:0)

根据您的评论:

  

我将其插入为空字符串。

好吧,如果您正在这样做:

insert into a (ForeignKeyColumn)
    values ('');

ForeignKeyColumn是一个数字,然后SQL会将''转换为一个数字。瞧,这个数字是0,因此不需要默认值。

如果要使用默认值,请从ForeignKeyColumn中删除insert。或使用default

insert into a (ForeignKeyColumn)
    values (default);