当从 C# 执行插入到 SQL Server 表(使用参数化 sql 语句)时,您是否需要在插入语句中指定每个表字段?
我注意到我没有在插入中指定的字段默认为表中设置的默认值。我不知道在我的插入语句中省略字段并让默认值负责设置我不关心的字段是好是坏。它一定没问题,因为它有效。
最佳答案
您需要指定要为其插入值的所有字段。您不必指定表中的所有字段!
正如您所注意到的,任何您未指定但对它们有默认约束的字段都将设置为该定义的默认值。这是一件“好事”(tm) - 当然!这允许您编写更少的 T-SQL 插入代码——所有定义的默认值都将已经设置。我发现这是 SQL Server(以及许多其他关系数据库)的一个很棒的特性——您可以在插入时将“最后修改”日期字段等初始化为“今天”,而不必专门将这些字段添加到您的 INSERT 语句中.
任何既不是 INSERT 语句的一部分,也没有定义默认值的字段都将保留为 NULL。
任何定义为 NOT NULL 的字段必须是 INSERT 语句中字段列表的一部分(以便您为它们提供特定的 NON NULL 值),或者它们必须具有默认约束。
关于c# - 您是否需要在插入中指定所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2276559/