除非通过SQL Server 2008中的表单将其他信息放入其中,否则保留字段“null”

时间:2012-08-09 21:19:22

标签: sql null

如何预设字段(除非从表单本身输入特定值),它们是否为空?对于另一个项目,我稍后将根据人们选择的选项从这个表中提取信息,所以如果我可以对nulls做一个cfif,我认为它比当前生成的空白要容易得多,如果我不这样做的话。 t插入任何新值。

有谁知道在哪里/怎么做?我正在使用Microsoft的SQL Server Management Studio来编辑各个列,我可以找到的是使用INSERT,SELECT等的命令代码,而不是我编辑的列表。或者这是使我的默认设置为“null”的唯一方法吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

如果某个字段设置为可以为空的字段(即允许NULL),则在添加行时,除非另有说明,否则它将为NULL

你不需要为此做任何特别的事。

如果您的INSERTUPDATE语句只是省略了该字段,则不会更新,但如果需要,您可以为此类字段明确指定NULL

答案 1 :(得分:0)

您可以使用辅助函数来处理参数设置。这是我使用的函数的简化版......

private static object ProcessParameter(object input)
{
    if (input == null)
        return input;

    switch (input.GetType().ToString().ToLower())
    {
        case "system.string":
            if (input == null || input.ToString() == "") { return DBNull.Value; }
            return input;

        case "system.int32":
        case "system.double":
            if (input.ToString() == "0" && IsNullable(input)) { return DBNull.Value; }
            return input;

        case "system.datetime":
            if (System.Convert.ToDateTime(input) == DateTime.MinValue || System.Convert.ToDateTime(input) == default(DateTime)) { return DBNull.Value; }
            return input;

        default:
            return input;
    }
}