MSSQL Server2000的表关联的问题
现在有两个表,a表中有id,bid,aname,易做图列,b表中有id,bname,age列,其中a表的bid关联b表的id
我想用insert语句写入a表,
insert into a (bid) select id from b where a.aname=b.bname
但是易做图在什么时候写入呢?
请高手赐教,我刚开始学数据库,有点麻烦
补充:其实我主要要问的是:
如果要用insert语句插入一条记录,其中一项是从别的表关联过来的,怎么才能实现?比如
a表中有id,bid,aname,易做图列,bid是对应b表的id的,怎么才能bid和name都写入a表?
__________________________________-
也就是说,a表只能是b表的一个子表?a就不能有不同于b的列啦?
答案:insert
into a(bid,aname)
select id,bname
from b;
由于a表和b表的结构并不完全一样,所以在通过子查询插入a表时,必须指明所要插入的字段名,并且要求所插入的字段类型和a表指定的字段类型匹配.
对于a表有而b表中不存在的字段,不能通过字查询来插入,只能另写插入元组来实现了.如:insert into a(易做图) values('male') where id='对应列值';且必须指明插入到a表的易做图字段。
其他:似乎没有表达清楚,看了两遍也不知道你想要做什么。 可以这样做:
Create Function inserta(
@s varchar(2)
)
return int
as
begin
declare @error int
declare @易做图 varchar(2)
set @易做图 = @s
insert into a(bid,易做图)
select id,@易做图 from b where a.aname = b.bname
set @error = @@error
return (@error)
end --------------------------------
我想用insert语句写入a表,
insert into a (bid) select id from b where a.aname=b.bname
但是易做图在什么时候写入呢?
--------------------------------
你要把易做图也写入表中,那你的b表中无易做图这个字段啊?
如果要把易做图也写入表中,那你b表中也得有易做图字段
INSERT INTO a ( bid,易做图 ) SELECT id,易做图 FROM b WHERE bname='具体值'
上一个:mssql和mysql各是什么?mssql是不是就是microsoft sql server
下一个:mssql server 2000 for vista