Sql server Sql Server 2008 R2表列和默认值

Sql server Sql Server 2008 R2表列和默认值,sql-server,Sql Server,表的列中默认值的意义是什么? 据 可以指定将在中的列中输入的默认值 使用SQL Server Management Studio或Transact-SQL创建SQL Server 2012。 如果未指定默认值,且用户离开该列 空白,然后: 如果将该选项设置为允许null值,则null将插入到列中。 如果未将该选项设置为允许空值,则该列将保持空白,但用户将无法保存该行,直到 为列提供一个值。 我不明白!如果您不允许在列上使用null,那么如果用户未提供默认值,它肯定应该在该列中插入默认值。 那为什

表的列中默认值的意义是什么? 据

可以指定将在中的列中输入的默认值 使用SQL Server Management Studio或Transact-SQL创建SQL Server 2012。 如果未指定默认值,且用户离开该列 空白,然后:

如果将该选项设置为允许null值,则null将插入到列中。 如果未将该选项设置为允许空值,则该列将保持空白,但用户将无法保存该行,直到 为列提供一个值。 我不明白!如果您不允许在列上使用null,那么如果用户未提供默认值,它肯定应该在该列中插入默认值。
那为什么不呢?

你一定错过了文件的一部分

可以指定将在中的列中输入的默认值 使用SQL Server Management Studio或Transact-SQL创建SQL Server 2012。 如果未指定默认值,且用户离开该列 空,则:如果将选项设置为允许空值,则空值将为空 插入到列中。如果未将该选项设置为允许null 值,列将保持空白,但用户将无法 保存行,直到它们为列提供值为止

因此,如果您确实指定了默认值,当用户将该列留空时,它将用作指定


有点奇怪的是,doc首先解释了如果你不使用默认值会发生什么,这可能不是你所期待的:你想知道当你使用它时会发生什么。在我第一次读得太快的时候,我也被弄糊涂了。

你的问题是默认值的意义是什么,还是你试图使用它们都不成功?正如你的陈述所说——这只适用于你没有指定默认值的情况——你的具体意义是什么?如果未指定默认值,则无法插入默认值。如果您在不允许为空的列上提供默认值,则将该列留空,它将不会插入默认值。@Paul是的,它将插入默认值。你在哪里读的?@Lamak doh你的权利!文档首先解释了如果您使用默认值会发生什么:您可以指定一个默认值,该值将在SQL Server 2012的列中输入,但仅在一行中,并对如果不使用默认值会发生什么进行了更多解释:@ypercube很好,是的,但部分错误。。。它至少应该是这样的:如果将该列留空,您可以指定将在Sql Server 2012的列中输入的默认值