我是新学者,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 行
')' 附近有语法错误。究竟是哪里有错?实在看不出来。。
多谢指教
-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 行
')' 附近有语法错误。究竟是哪里有错?实在看不出来。。
多谢指教
select sales_manager from project
语法问题当然报错
但是 insert 语句嵌套select 不是那样写的啊?就奇了怪了
如果用嵌套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