我快疯了,这个语句为何就是不能执行啊???
我是新学者,win7 装的SQL 2005,在Sales_manager表 emp_name列中插入project表格中查到的sales_manager:
1.sales_manager表
-emp_name
-emp_sex
-emp_position
2.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 行
')' 附近有语法错误。
究竟是哪里有错?实在看不出来。。
多谢指教
------解决方案--------------------insert into sales_manager (emp_name)
select sales_manager from project
语法问题当然报错
------解决方案--------------------values后面是直接跟值,
如果用嵌套insert into 表名(列名1,列名2...) select 列名1,列名2... from 表
两个列数量必须一致
------解决方案--------------------你的语法是错误的。
如果你是想把一张表里的数据插入一张表里的话,首先字段的类型要相同
给你演示一下:
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 时失败。
------解决方案--------------------看到楼主写的我们也疯了,确实不是那样写的
insert into sales_manager (emp_name)
select sales_manager from project