“保留一个字段”;空";除非其他信息已通过SQLServer2008中的表单放入其中

“保留一个字段”;空";除非其他信息已通过SQLServer2008中的表单放入其中,sql,null,Sql,Null,如何预设字段(除非表单本身输入了特定值),使其保持为空?对于另一个项目,我以后将不得不根据人们选择的选项从这个表中提取信息,因此如果我可以对空值执行cfif,我认为如果我不插入任何新值,这将比当前生成的空白值容易得多 有人知道在哪里/怎样做吗?我正在使用Microsoft的SQL Server Management Studio编辑各个列,我所能找到的只是使用INSERT、SELECT等的命令代码,而不是我编辑的列表。或者这是使我的默认设置为“null”的唯一方法吗 感谢您的帮助如果一个字段被设

如何预设字段(除非表单本身输入了特定值),使其保持为空?对于另一个项目,我以后将不得不根据人们选择的选项从这个表中提取信息,因此如果我可以对空值执行cfif,我认为如果我不插入任何新值,这将比当前生成的空白值容易得多

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


感谢您的帮助

如果一个字段被设置为可为空的字段(即,它允许
NULL
),则在添加行时,除非另有规定,否则它将为
NULL

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


如果您的
INSERT
UPDATE
语句只是省略了该字段,则不会对其进行更新,尽管您可以根据需要专门为此类字段指定
NULL

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

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;
    }
}

你所描述的是默认行为。请让我们知道你得到不同结果的条件,这样我们可以给你更具体的帮助。好的,嗯。。。我试着给列设置一个默认值(NULL),但是没有用,它仍然是一个空白。我可以将值设为“null”,但它不是实际的null值(它只是碰巧说null)——这会让它更清晰吗?我不确定你对“不同结果”的要求是什么?你是如何插入值和获取空字符串的?我有一些复选框,人们可以从下拉列表中选择一个值(在这里我可以看到有空字符串问题,只是不知道如何解决),或者自己键入它。如果其中任何一项留空,则在表中留空。我使用CFSET获得了真/假布尔值;这是一个类似的问题吗?有两种情况下,即使表允许空值,它也不会自动为空-如果在表定义中设置了默认值,或者如果您通过用户界面中的查询发送空值。我已经这样设置了它。。。它们被设置为接受空值,但它不是斜体的空值,而是表中的一个空格。这是否意味着我的表单中有一些东西需要更改,以便它不只是假设有一个空值而不是保持空值?@SJ-你在说什么表单?