insert into EDU_USER (DEPT_ID) values (@DEPT_ID)。以上语句,我想根据条件赋予DEPT_ID一个固定值或者是NULL值,但如何赋予NULL值啊?如果直接赋予@DEPT_ID=NULL好像不行啊,DEPT_ID在数据库中的default值可以是NULL的。

解决方案 »

  1.   

    --可以的
    set @DEPT_ID=null
    insert into EDU_USER (DEPT_ID) values (@DEPT_ID)
      

  2.   

    insert into EDU_USER (DEPT_ID) values (@DEPT_ID)
    假如,你的其他字段不允許null(not allow null)他會出錯
    你用update來試一下
      

  3.   

    insert into EDU_USER (DEPT_ID) values (case when 条件 then @DEPT_ID else null end)。
      

  4.   

    各位,其实我的情况是这样的:我在asp.net的C#页面中执行一条这样的语句:String addCmd = "insert into EDU_USER (DEPT_ID, POSITION_ID1) values @DEPT_ID, @POSITION_ID1)";

    SqlCommand addCommand = new SqlCommand(addCmd, dbConnection);

    addCommand.Parameters.Add(new SqlParameter("@DEPT_ID", SqlDbType.Int, 4));
    addCommand.Parameters.Add(new SqlParameter("@POSITION_ID1", SqlDbType.Int, 4));addCommand.Parameters[0].Value = 部门ID的值;
    addCommand.Parameters[1].Value = 岗位ID的值;在这里我想给addCommand.Parameters[0].Value一个null值,可是不行啊!
    系统返回说“需要参数 @DEPT_ID,但未提供该参数”。
    我需要根据一些条件来给它一个具体的部门ID,或者是一个null值,但是如何把null值放进去呢?
      

  5.   

    不明白asp是怎么回事
    是不是POSITION_ID1有问题。
      

  6.   

    这个不应该是sql的问题,应该是ado对象的问题,估计它是根据参数值是否为null来判断是否给参数赋值如果写成存储过程的话,这个好处理(将存储过程的参数默认值设置为null就行了),这样直接写就不知道该如何做了
      

  7.   

    addCommand.Parameters[0].Value = DbNull.Value;
      

  8.   

    DbNull位于System.Data名字空间中,别忘了using。