我是新学者,win7 装的SQL 2005,在Sales_manager表 emp_name列中插入project表格中查到的sales_manager:1.sales_manager表
-emp_name
-emp_sex
-emp_position2.Project 表
-project_name
-Project_Type
-Sales_Manager用语句如下:
insert into sales_manager (emp_name) values (select sales_manager from project)查询分析器报如下错误:消息 156,级别 15,状态 1,第 1 行
关键字 'select' 附近有语法错误。
消息 102,级别 15,状态 1,第 1 行
')' 附近有语法错误。究竟是哪里有错?实在看不出来。。
多谢指教

解决方案 »

  1.   

    insert into sales_manager (emp_name) 
    select sales_manager from project
    语法问题当然报错
      

  2.   

    果真楼上的可以执行,多谢了!
    但是 insert 语句嵌套select 不是那样写的啊?就奇了怪了
      

  3.   

    values后面是直接跟值,
    如果用嵌套insert into 表名(列名1,列名2...) select 列名1,列名2... from 表
    两个列数量必须一致
      

  4.   

    你的语法是错误的。
    如果你是想把一张表里的数据插入一张表里的话,首先字段的类型要相同
    给你演示一下:
    create table sales_manager
    (
      emp_name varchar(20) null,
      emp_sex bit null,
      emp_position varchar(20) 
    )
    create table Project 
    (
      project_name varchar(20) null,
      Project_Type bit null,
      Sales_Manager varchar(20)
     )
     
     insert into sales_manager values('tom','1','abc')
     insert into Project values('sa','2','def')建表并插入数据
     insert into sales_manager (emp_name) 
     select sales_manager from project
     select * from sales_manager
    ------------------------------------------------
    emp_name             emp_sex emp_position
    -------------------- ------- --------------------
    tom                  1       abc
    def                  NULL    NULL(2 行受影响)
    如果你插入时,插入数据的字段类型不一样,他会报错.
     insert into sales_manager (emp_sex) 
     select sales_manager from project
    ----------------------------------------------
    消息 245,级别 16,状态 1,第 1 行
    在将 varchar 值 'def' 转换成数据类型 bit 时失败。
      

  5.   

    看到楼主写的我们也疯了,确实不是那样写的
    insert into sales_manager (emp_name) 
    select sales_manager from project