我在SQl server 2008中想插入一些数据,其中有一个字段是有默认约束的,但是如果我在那个字段的位置上什么都不输入就会出现如下错误  All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
我如果打上null也不行,怎么解决呀

解决方案 »

  1.   

    默认的话,是约束还是值???如果是值的话就 INSERT TB VALUES(DEFAULT)
      

  2.   

    CREATE TABLE TBETST(NUM INT DEFAULT 1)
    INSERT TBETST VALUES(DEFAULT)
    SELECT * FROM TBETST
    NUM         
    ----------- 
    1(所影响的行数为 1 行)?
      

  3.   

    楼主 
    把你代码贴出来 
    你的问题应该是代码用了 UNION 没对应好数据列的数目
      

  4.   

    All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists. 你这句是用了UNION ,但是要有相同的结构或个数,默认的那个没打上????
      

  5.   

    must have an equal number of expressions in their target lists.
    应该是给的数据和表的列数不对应
      

  6.   

    .......
    go
    insert stuInfo (stuName,stuNo,stuSex,stuAge,stuAddress)
    select '张秋','s25301','男',18,'北京海淀' union
    select '李','s25303','女',22,'河南洛阳' union
    select '李文才','s25302','男',31 union
    select '欧阳俊雄','s25304','男',28,'新疆威武哈'
    go
    ......
      

  7.   

    最后的那个stuAddress字段有默认值
      

  8.   


    如果指定了 你的默认列 那就不能什么都不写 一定对应那列写上stuAddress 值的
      

  9.   

    -- =========================================
    -- -----------t_mac 小编-------------------
       --------------------希望有天成为大虾---- 
    -- =========================================IF OBJECT_ID('stuInfo') IS NOT NULL
    DROP TABLE stuInfo
    GO
    CREATE TABLE stuInfo(stuName varchar(10),stuNo varchar(10) , stuSex varchar(10) ,stuAge int, stuAddress varchar(30) default '哈哈哈哈')
    go
    insert stuInfo 
    select '张秋','s25301','男',18,'北京海淀' union  all
    select '李','s25303','女',22,'河南洛阳' union  all 
    select '欧阳俊雄','s25304','男',28,'新疆威武哈' insert stuInfo (stuName ,stuNo , stuSex  ,stuAge)
    select '李文才','s25302','男',31select * from stuInfo 
    /*
    stuName    stuNo      stuSex     stuAge      stuAddress
    ---------- ---------- ---------- ----------- ------------------------------
    张秋         s25301     男          18          北京海淀
    李          s25303     女          22          河南洛阳
    欧阳俊雄       s25304     男          28          新疆威武哈
    李文才        s25302     男          31          哈哈哈哈
    */
    你分开插入倒是可以
      

  10.   

    我查过有关资料 这样用默认值是不可以的 当多条一起插入的时候 可以用触发器实现IF OBJECT_ID('stuInfo') IS NOT NULL
    DROP TABLE stuInfo
    GO
    CREATE TABLE stuInfo(stuName varchar(10),stuNo varchar(10) , stuSex varchar(10) ,stuAge int, stuAddress varchar(30)) --建触发器
     go
     create trigger tri_ins
     on stuInfo
     for insert
     as 
     update stuInfo 
     set  stuAddress=isnull(i.stuAddress,'')+'哈哈哈哈'--默认值 相当于 
     from inserted i
     where stuInfo.stuName =i.stuName  and stuInfo.stuAddress is null  
      --插入新数据
    insert stuInfo (stuName,stuNo,stuSex,stuAge,stuAddress) 
    select '张秋','s25301','男',18,'北京海淀' union 
    select '李','s25303','女',22,'河南洛阳' union 
    select '李文才','s25302','男',31,null union 
    select '欧阳俊雄','s25304','男',28,'新疆威武哈' 
      --查询
      select * from stuInfo
      /*
      stuName    stuNo      stuSex     stuAge      stuAddress
    ---------- ---------- ---------- ----------- ------------------------------
    李          s25303     女          22          河南洛阳
    李文才        s25302     男          31          哈哈哈哈
    欧阳俊雄       s25304     男          28          新疆威武哈
    张秋         s25301     男          18          北京海淀  */