Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在sql server中将列值设置为NOTNULL时,是否必须为该列设置默认值,或者该列是否仍可以工作?_Sql Server_Asp.net Mvc_Entity Framework - Fatal编程技术网

Sql server 在sql server中将列值设置为NOTNULL时,是否必须为该列设置默认值,或者该列是否仍可以工作?

Sql server 在sql server中将列值设置为NOTNULL时,是否必须为该列设置默认值,或者该列是否仍可以工作?,sql-server,asp.net-mvc,entity-framework,Sql Server,Asp.net Mvc,Entity Framework,如果我使用例如Entity Framework并尝试进行插入,如果要更新的模型具有字符串值或bool(尽管未设置),则模型值不能为null,因此它们应该处理要插入到这些字段中的默认值 在sql server中将列值设置为NOTNULL时,是否必须 为列设置一个默认值,或者它是否仍然有效 当您将约束设置为NOTNULL时,这意味着您必须为该列指定一个值。它不能保持为空。您当然可以为该列指定任何默认值 如果您不想每次都给列指定值,那么最好为该列设置一些默认值,否则您需要在每次执行insert语句时为

如果我使用例如Entity Framework并尝试进行插入,如果要更新的模型具有字符串值或bool(尽管未设置),则模型值不能为null,因此它们应该处理要插入到这些字段中的默认值

在sql server中将列值设置为NOTNULL时,是否必须 为列设置一个默认值,或者它是否仍然有效

当您将约束设置为NOTNULL时,这意味着您必须为该列指定一个值。它不能保持为空。您当然可以为该列指定任何默认值


如果您不想每次都给列指定值,那么最好为该列设置一些默认值,否则您需要在每次执行insert语句时为该列提供值。

如果您将现有列设置为
NOT NULL
,并且该列在之前可以为空,则

  • 所有现有行都已具有该列的值(或者更新表以满足此条件)

  • 或者,您必须为
    notnull
    列提供默认值,以便包含
    NULL
    的任何行都将填充默认值


您可以选择这两个选项中的任何一个。如果使用ALTER命令将列设置为非空,则必须确保列的所有值均不应为空,或者可以设置其默认值。但在使用CREATE命令的情况下,不强制创建默认值,因为它将限制使用任何DML命令插入空值