导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请问: 外键的内容,怎么insert和update?

levellee 2008-01-06 11:10:27
感谢各位费时看我的帖子,
请帮忙一下小弟!


我有如下四个表 :
days product records EMP

days--------------以下是表的列

ID productID recordID peopleID plan


主键 外键(参照product表) 外键(参照record表) 外键(参照EMP表)



product-----------以下是表的列
productID product_name
主键


records----------以下是表的列
recordID record_name
主键


EMP--------------以下是表的列
peopleID name dept sex tel
主键

我用asp读数据库的时候用视图,这个读取没问题.

当我要insert 或者update的时候插资料到表里:
days表:
ID //这个自动累加没问题
productID //用户在前台提交的是product_name
recordID //用户在前台提交的是record_name
peopleID //用户在前台提交的是员工的name
plan //这个没问题!

请问这样的话语法该怎么写?

麻烦高手不舍赐教.感谢!
...全文
254 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2008-01-09
faint
回复
levellee 2008-01-09
怎么结帖?
回复
JL99000 2008-01-07
这个首先应该用用户在页面提交的名字来将记录插入到相应的各自表中
这样每个表中都有一个该名字对应的记录
再通过这个名字来获取ID
最后将所有获取的ID插入到days表中
欧了
回复
levellee 2008-01-06
insert into days
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan



服务器: 消息 213,级别 16,状态 4,行 1
插入错误: 列名或所提供值的数目与表定义不匹配。

是怎么回事?
回复
levellee 2008-01-06
谢谢
tim_spac
回复
tim_spac 2008-01-06

insert into days
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan
回复
levellee 2008-01-06
提交的名字只需要能够找到唯一的ID,就没有问题啊;如果是下拉框可以给value赋值ID就可以了


这个行不通,
因为员工有3000人,

不可能下拉框来3000个选项.

这样录入数据的同事不扁死我拉...
回复
levellee 2008-01-06
这样啊?
我试试.
有其他语法可以实现吗?
回复
hy_lihuan 2008-01-06
提交的名字只需要能够找到唯一的ID,就没有问题啊;如果是下拉框可以给value赋值ID就可以了
回复
levellee 2008-01-06
哦.可以了.thanks
回复
pt1314917 2008-01-06

错误已经提示的很明显了。列名数目不匹配,改为如下。
insert into days(productid,recordid,propleid,plan)
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告