SQL Server - 为什么它允许我将空格插入非可空列?

AAA*_*AAA 3 sql-server null

我在SQL Server中有一个表,其中一个列是varchar(50)并设置为非空列.此列不是主键.

如果我尝试执行空插入,我会收到错误:

无法将值NULL插入列中.列不允许空值.INSERT失败.

这是预期的.

如果我试图插入'',我会期望同样如此,但由于某种原因,它允许空白没有问题.为什么?如何让表格不允许空白进入此特定列?我不想要一个默认值,我希望插入失败的方式与null失败相同.

谢谢

Gio*_*sos 8

空字符串与NULL值不同.NULL真的意味着没有,不知道.

您可以添加CHECK约束来实现您之后的功能:

ALTER TABLE mytable ADD CONSTRAINT CHK_EmptyString CHECK  ( myCol <> '')
Run Code Online (Sandbox Code Playgroud)