update语句更新不了

DST_good 2005-07-04 03:18:09
表a
学号 课程 成绩
001 C语言 优
002 C语言 优
003 C语言 良
................
...............
100 C语言 差
表b
学号 课程 成绩 考场
001 C语言 1
002 C语言 2
003 C语言 1
........................
........................
100 C语言 3

我在查询分析器中用
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
提示
所影响的行数为 3000 行
但是用查询表b中C语言的成绩还是空的,没有更新,不知语句错在哪里?

...全文
160 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengzulin 2005-07-05
  • 打赏
  • 举报
回复
你可能update了其他数据库了,用
use datebasename
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
paoluo 2005-07-05
  • 打赏
  • 举报
回复
回复人: aflyingpig(毛毛) ( ) 信誉:100 2005-7-5 16:27:51 得分: 0



问题解决,是表a中的学号(nvchar)和表b中的学号(varchar)数据类型不一样


-----------------------------------
如果说由于类型的问题的话,Update有影响,我开始说的这个查询

Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程

应该也是有影响的啊
DST_good 2005-07-05
  • 打赏
  • 举报
回复
问题解决,是表a中的学号(nvchar)和表b中的学号(varchar)数据类型不一样
tian790317 2005-07-05
  • 打赏
  • 举报
回复
mengzulin(Julian) 和lsxaa(小李铅笔刀) 都有可能
DST_good 2005-07-04
  • 打赏
  • 举报
回复
Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
有数据
在查询分析器中用
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
提示
所影响的行数为 3000 行
但是用查询表b中C语言的成绩还是空的,没有更新
用update 表b
set 成绩 = '优'
提示
所影响的行数为 3000 行
用查询表b中C语言的成绩也全部更新了
paoluo 2005-07-04
  • 打赏
  • 举报
回复
你用

Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程

看看有没有数据??
DST_good 2005-07-04
  • 打赏
  • 举报
回复
用这个还是一样呀
update 表b
set 成绩 = isnull(成绩,'')+表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
我直接用
update 表b
set 成绩 = '优'
是能更新的
zengzhengliang 2005-07-04
  • 打赏
  • 举报
回复
wuzd 2005-07-04
  • 打赏
  • 举报
回复
没有commit吧?
lsxaa 2005-07-04
  • 打赏
  • 举报
回复
update 表b
set 成绩 = isnull(成绩,'')+表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧