一条Update的SQL语句问题 ( 积分: 100 )

  • 主题发起人 主题发起人 hhaayy2002
  • 开始时间 开始时间
H

hhaayy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位帮我看这条update语句,总是提示“表达式中类型不匹配”
UPDATE employee SET employee.E_enterdate = (select 参加工作时间 from temptable where temptable.工号=employee.e_no)
WHERE Exists (select * from temptable where temptable.工号=employee.e_no);
若是不加后面的WHERE,只用
UPDATE employee SET employee.E_enterdate = (select 参加工作时间 from temptable where temptable.工号=employee.e_no)
就显示“操作必须使用一个可更新的查询”
 
UPDATE employee SET employee.E_enterdate = (select 参加工作时间 from temptable where temptable.工号=employee.e_no)
from employee
WHERE Exists (select * from temptable where temptable.工号=employee.e_no)
 
update a set a.E_enterdate=b.参加工作时间
from employee a , temptable b
where a.e_no=b.工号
这样就可以了,不用加Exists
 
同意楼上的,可在查询问析器中调试看看
 
什么数据库?
 
UPDATE employee SET employee.E_enterdate = (select 参加工作时间 from temptable,employee where temptable.工号=employee.e_no)
WHERE Exists (select * from temptable,employee where temptable.工号=employee.e_no);
 
UPDATE employee SET employee.E_enterdate = (select TOP 1 参加工作时间 from temptable where temptable.工号=employee.e_no)
这样最安全
 
JohnSun2002 说的是在 Sql Server 2000用的T-SQL语言,我用的是Access,各位说的办法都行不能
 
问题解决了,多谢各位了
我综合了一下各位的意见,需要在UPDATE后面加上temptable表名
UPDATE employee e,temptable SET e.E_enterdate = temptable.参加工作时间 where temptable.工号=e.e_no
 
后退
顶部